Well, first we’d like to give a big ol’ shoutout to our teammate and new PowerShell MVP Rob Sewell!

Rob is one of the most visible members of the SQL PowerShell community, an officer in the PASS PowerShell Virtual Group and an outstanding evangelist & Pester test maker for dbatools. We’re all so excited about Rob’s well-deserved recognition – love you, buddy! ❤️



bagofbobbish beta testing

Before the official release of bagofbobbish to master and the PowerShell Gallery, we need help finding bugs. Then, we’ll need some time to resolve those bugs. Hopefully this can be done before community members show off dbatools at a few key SQLSaturdays around the world this Saturday, July 8th.

We would really appreciate it if you would download the beta from GitHub and (in a test environment) see if you can find anything that doesn’t work as expected.

If you find any bugs, please file a report on GitHub. You can also reach out to us in the Slack channel.

Currently, there aren’t any webpages for the commands listed in this post, but all commands have help, so when you need help, simply type Get-Help commandName -Examples or Get-Help commandName -Full.

What’s changed?

It’s been two months since our last major release and we’ve made leaps and bounds towards 1.0. Here’s a list of some of the changes included in the 1700+ commits since our last release:

Changed command names. Particularly, all Sql prefixes have changed to Dba. Previous names are aliased, should work, and should come with a warning that the name will go away in version 1.0

Standardized many parameters such as SqlInstance

Changed all plural parameters to singular (Databases -> Database)

Switched the backend tab-completion process from native Dynamic Parameters to TabExpansion++

Added a caching system for tab-completion

Switched to pre-compiling the library into a DLL file. This allows us to improve the module import speed and make the development logistics better.

Speaking of compiling, C# dev Justin Dearing recently joined the team! Now we’ll have someone to provide Fred, our in-house magician, some relief. So far, Justin’s added some efficiency cleanup, code style and tests – thanks, man!



63 new commands

In addition to making all of those changes, we also added 63 new commands! The number is a bit high because we hadn’t announced a couple extra special ones that were previously included in the code, but not the site or blog post.

Namely, we merged André Kamman‘s Diagnostic Query commands that make working with Glenn Berry’s Diagnostic DMV Queries incredibly easy!



Diagnostic query scripts

Invoke-DbaDiagnosticQuery

Executes the scripts provided by Glenn Berry’s DMV scripts on specified servers.

Executes the scripts provided by Glenn Berry’s DMV scripts on specified servers. Export-DbaDiagnosticQuery

Converts output generated by Invoke-DbaDiagnosticQuery to an automatically generated CSV or Excel.

Save-DbaDiagnosticQueryScript

Automatically downloads the most recent version of all Glenn Berry DMV scripts.

I made a pretty crude video showing Invoke-DbaDiagnosticQuery | Export-DbaDiagnosticQuery in action. It’s on YouTube, along with another quick video about Save-DbaDiagnosticQueryScript.

More in-depth blog post coming soon!



Security commands

A bunch of security-related commands were added. I’m looking forward to a detailed blog post about these, they really simplify things like forcing network encryption.

Add-DbaComputerCertificate

Backup-DbaDbCertificate

Backup-DbaDbMasterKey

Disable-DbaForceNetworkEncryption

Enable-DbaForceNetworkEncryption

Get-DbaComputerCertificate

Get-DbaDbCertificate

Get-DbaDbMasterKey

Get-DbaForceNetworkEncryption

Get-DbaNetworkCertificate

New-DbaComputerCertificate

New-DbaDbCertificate

New-DbaDbMasterKey

New-DbaServiceMasterKey

Remove-DbaCmConnection

Remove-DbaComputerCertificate

Remove-DbaDbCertificate

Remove-DbaDbMasterKey

Remove-DbaNetworkCertificate

Restore-DbaDbCertificate

Set-DbaNetworkCertificate

Troubleshooting commands

Along with our C# framework comes a really amazing logging system. The newest release introduces two commands that help you export logs and detailed system info for the times you encounter challenging issues.

Get-DbatoolsLog

New-DbatoolsSupportPackage

Computer Management commands

We also introduced a computer management system that we’ll detail soon. These commands are primarily for our developers, but also help provide you insight into how we are connecting to your remote computers when you use a Windows-based command such as Test-DbaDiskSpace.

Why don’t we just use what’s out of the box with PowerShell? Well, in order to support as many systems as possible, even legacy or those with restricted access, we have a bunch of fail backs to ensure that we’ve tried our best to connect. These commands encapsulate all of our fail backs.

Get-DbaCmObject

Get-DbaCmConnection

New-DbaCmConnection

Set-DbaCmConnection

Test-DbaCmConnection

Log shipping

Sander Stad created some really cool Log Shipping wrappers! We’d love some testers to give feedback.

Invoke-DbaDbLogShipping

Invoke-DbaDbLogShipRecovery

Agent commands

A bunch of Agent commands in support of the Log Shipping wrappers and Get-DbaAgentJobHistory was a cherry on top.

Get-DbaAgentJobHistory

Get-DbaAgentSchedule

New-DbaAgentJob

New-DbaAgentJobStep

New-DbaAgentSchedule

Remove-DbaAgentJob

Remove-DbaAgentJobStep

Remove-DbaAgentSchedule

Set-DbaAgentJob

Set-DbaAgentJobStep

Set-DbaAgentSchedule

Other awesome commands

And here are a bunch of super fun commands! Check them out in your lab, let us know what you think.

Find-DbaTrigger

Find-DbaView

Get-DbaDbSpace

Get-DbaEndpoint

Get-DbaMaintenanceSolutionLog

Get-DbaSchemaChangeHistory

Get-DbaInstanceAudit

Get-DbaInstanceInstallDate

Get-DbaInstanceProperty

Get-DbaInstanceUserOption

Get-DbaManagementObject

Get-DbaSsisEnvironmentVariable

Install-DbaFirstResponderKit

Invoke-DbaDbUpgrade

New-DbaConnectionString

New-DbaConnectionStringBuilder

Read-DbaTraceFile

Set-DbaTcpPort

Test-DbaManagementObject

Testing and reporting issues

For those of you interested in testing, thank you! Again, you can get this release by downloading the zip manually from GitHub. From there, you can manually import it using Import-Module C:\pathto\dbatools\dbatools.psd1 -Force. Note that this beta release is not digitally signed but the final release will be.

If you find any bugs – even anything obvious like the command can’t run at all, or didn’t get aliased and therefore no longer exists, please file a bug report at dbatools.io/issues.

If you like any of these commands, pop in and let us know on our Slack channel. We now have nearly 800 members!

- Chrissy