we’re now releasing monthly! here’s september’s batch.

September has been an incredibly busy month for dbatools. We’ve created a new organization on GitHub called the SQL Server Community Collaborative and as the name suggests, we welcome you to join. Rob Sewell, creator of dbareports and Warren Frame, creator of Invoke-SqlCmd2, have also migrated their modules to this new GitHub Organization.

Being part of a GitHub organization gives us access to more features on GitHub. It also helps formalize our process. Speaking of, this month will be the first time we have a formal release! fireworks


Ever read a really great article about how to do something properly but then kinda forgot and you have to revisit each time? Well, we’ve codified some of those practices for you, making them easy to both follow and remember.

Now, when you want to review your SQL Server’s restore history, you can just perform a Get-Command *restore*history* and boom, Get-DbaDbRestoreHistory will appear. Get-Help Get-DbaDbRestoreHistory and you’re set; no more searching the internet for SQL queries or table names.

  • Get-DbaDbRestoreHistory
    Returns restore history details (database, username, restore type, date, from & to files) for all or only some databases on a SQL Server. You can even specify -Since if you’d like to filter by date. Thanks to Kenneth Fisher for the idea!
  • Get-DbaTcpPort
    This command returns the TCP port used by the specified SQL Server. By default, only the TCP port used by the specified SQL Server is returned. If -Detailed is specified, server name, IPAddress (ipv4 and ipv6), port number and if the port assignment is static.

  • Test-DbaDbCompatibility
    This command compares database compatibility level to server compatibility. Older compatibility levels can have a negative impact on performance and query plans.

  • Test-DbaDbCollation
    This command compares database collation to server collation. Collation differences can result in unexpected query results.

  • Test-DbaConnectionAuthScheme
    This command returns the transport protocol and authentication scheme of the connection. This is useful to determine if your connection is using Kerberos. By default, the ConnectName, ServerName, Transport and AuthScheme of the current connection will be returned.

  • Repair-DbaInstanceName
    When a SQL Server’s host OS is renamed, the SQL Server should be as well. This helps with Availability Groups, Kerberos and other SQL Server components.

    Repair-DbaInstanceName helps determine if your OS and SQL Server names match and if a rename is required. It then checks conditions that would prevent a rename like database mirroring and replication.

  • Repair-DbaServerName
    This command renames @@SERVERNAME to match with the Windows name. The new name is automatically determined based on the OS network name. Works for default and named instances. Renaming clusters is not supported by this command, as doing so is not supported by Microsoft.

    If the automatically determined new name matches the old name, the command will not run.

  • Stop-DbaProcess
    This command kills all spids associated with a spid, login, host, program or database. If you are attempting to kill your own login sessions, the process performing the kills will be skipped.


October’s batch

October is going to be another busy month. Some of us are working on new commands, and some of us are doing code maintenance and bug fixing.

  • Copy-SqlMaintenancePlan
    This is already a pull request in the development repository! Just a bit more testing is needed.
  • Move-DbaDatabaseFile
    We wanted to ensure this command is as fail-proof and useful as possible. It’s been tough getting progress bars to work, but we’re finally confident it will be released in October.

  • Get-DbaProcess
    A perfect compliment to Stop-DbaProcess.

  • Remove-SqlBackupFromDisk
    T-SQL based maintenance plans can’t safely access Windows file system to determine if a file has been properly archived. PowerShell makes it easy. This command will make it easier to clean up old, archived (and unarchived) backups.

  • Tons of best practice Tests including Test-DbaLockPagesInMemory, Test-DbaInstantFileInitialization, and Test-DbaDatabaseBestPractice

Want to see more or work on a command yourself? We have approved command ideas on the dbatools Trello board. This board shows you what we’re working on and what we’re talking about. We’d love if you’d join us.

Join us!

Some of these commands are in their infancy. Want to help make them better? Come join the coding party! We’re all hanging out on the SQL Server Community Slack in the #dbatools channel.

4 thoughts on “we’re now releasing monthly! here’s september’s batch.

  1. Jep Reply

    You guys are killing it with these modules. Thank you so much for your hard work. It’s made a lot of my mundane dba tasks a lot easier!

  2. Igor Reply

    Hello Chrissy!

    First of all, great job automating critical DBA tasks! Kudos to you and entire team. I’ve just started familiarizing myself with commands and have got one question. Many of SQL Servers I work with are listening on custom port. I know I can create an alias (and it works fine), but is there a way of provide port number along with SQL Server name when executing commands? , doesn’t seem to work.


    • Chrissy LeMaire Post authorReply

      Hey Igor,
      Thank you for your kind words! I just tested one command that worked, but I can see how a number of them wouldn’t because of the way we parse SQL Server names. We will add this to our list of things to support.

      Here’s a working example of passing a port.

      Test-SqlPath -SqlServer "sqlserver,1433" -Path C:\

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.