287 commands and counting

Last month, I went through an audit that consumed every waking moment of my life. I would literally wake up, get ready for work, grab the three meals my wife made for me, go to work for 16-18 hours, come back, sleep then wake up, rinse, repeat. I tried to stay as healthy as possible by prioritizing sleep, taking vitamins, eating vegetarian meals that were easy to digest and drinking tea (and not energy drinks) as an energy source.

After passing my audit (😁👍) and taking a long nap, I started a new project for crowd-sourcing the DISA Documentation Template for SQL Server. People often ask DISA for templates but they don’t have anything to provide so I’d like to change that, if only for my future self.

If you work for an organization that is subject to DISA inspections and believe you have some good anonymized documentation to contribute, please do! The templates are in markdown.

progress [============>···]

Really, I said all that so that you’d hopefully excuse the recent lack of communication 😉 Not only did I have the big ol’ audit, but we are also preparing for two dbatools pre-cons. One with Klaas Vandenberghe and Rob Sewell in Ghent, Belgium at dataminds and then the one in Seattle at PASS Summit.

This means that communication will slow a bit until December, but I wanted to give you an update. First, we’re now at a whopping 287 magical commands! We’ve got three kind folks working on the webpages and once they are all ready, I’ll do a new release. Until then, here’s over 80 newish commands that you can explore using Get-Help -Detailed.

Add-DbaComputerCertificate
Backup-DbaDatabaseMasterKey
Copy-DbaAgentAlert
Copy-DbaServerAuditSpecification
Disable-DbaAgHadr
Disable-DbaForceNetworkEncryption
Enable-DbaAgHadr
Enable-DbaForceNetworkEncryption
Find-DbaSimilarTable
Find-DbaTrigger
Find-DbaView
Get-DbaAgDatabase
Get-DbaAgentJobHistory
Get-DbaAgentLog
Get-DbaAgentSchedule
Get-DbaAgHadr
Get-DbaAgReplica
Get-DbaAvailableCollation
Get-DbaCmConnection
Get-DbaComputerCertificate
Get-DbaComputerSystem
Get-DbaDatabasePartitionFunction
Get-DbaDatabasePartitionScheme
Get-DbaDatabaseSpace
Get-DbaDatabaseUdf
Get-DbaDatabaseUser
Get-DbaDatabaseView
Get-DbaDbMailHistory
Get-DbaDbMailLog
Get-DbaDbQueryStoreOptions
Get-DbaDbStoredProcedure
Get-DbaDefaultPath
Get-DbaDependency
Get-DbaFile
Get-DbaForceNetworkEncryption
Get-DbaMaintenanceSolutionLog
Get-DbaNetworkCertificate
Get-DbaOperatingSystem
Get-DbaPolicy
Get-DbaRegisteredServersStore
Get-DbaServerInstallDate
Get-DbaSqlInstanceProperty
Get-DbaSqlInstanceUserOption
Get-DbaSqlLog
Get-DbaSqlManagementObject
Get-DbaSqlRegistryRoot
Get-DbaSsisEnvironmentVariable
Get-DbatoolsLog
Get-DbaTraceFlag
Get-DbaWindowsLog
Import-DbaCsvToSql
Install-DbaFirstResponderKit
Install-DbaMaintenanceSolution
Invoke-DbaCycleErrorLog
Invoke-DbaDatabaseUpgrade
Invoke-DbaLogShipping
Invoke-DbaLogShippingRecovery
New-DbaAgentSchedule
New-DbaComputerCertificate
New-DbaCredential
New-DbaServiceMasterKey
New-DbaSqlConnectionString
New-DbaSqlConnectionStringBuilder
Read-DbaTraceFile
Remove-DbaAgentSchedule
Remove-DbaCmConnection
Remove-DbaComputerCertificate
Remove-DbaDatabaseCertificate
Remove-DbaDatabaseMasterKey
Remove-DbaDatabaseSafely
Remove-DbaNetworkCertificate
Remove-DbaOrphanUser
Restart-DbaSqlService
Restore-DbaDatabaseCertificate
Save-DbaDiagnosticQueryScript
Set-DbaAgentJobStep
Set-DbaAgentSchedule
Set-DbaDbCompression
Set-DbaDbQueryStoreOptions
Set-DbaNetworkCertificate
Start-DbaSqlService
Stop-DbaSqlService
Test-DbaDbCompression
Test-DbaSqlManagementObject

So many of these commands are insanely useful and I can’t thank our 78 (!!) contributors enough. Also, Shawn Melton, Andy Levy and Simone Bizzotto have recently invested extra insane-o hours into moving the project forward and I’d like to give them a special shout out.

Thank you so very very much for helping the 1.0 progress during this sprint!

the long, long road to 1.0 😂

I can’t decide if this is because I can be a perfectionist or because it legitimately takes a super long time to put out an Enterprise grade release, but you may have noticed 1.0 didn’t quite debut in June. Or July. Or August or even September. Now I know why gmail took so long to get out of beta.

The original goals for 1.0 were:

  • Standardized names
  • Standardized parameters
  • Standardized documentation
  • Standardized codebase
  • Pipe support
  • Tests

Andy is helping like mad with standardizing the docs, and Shawn is doing a fabulous job leading a team to update the code base to the 1.0 standard – 231 out of 287 commands complete! Pipe support is still lacking and may just becoming a focus for 1.1 instead of 1.0.

That leaves us with tests, which Simone has been acing. He fixed our Appveyor setup and really pushed for us to create non-destructive tests, which I appreciate. Before, I was building tests as though the Appveyor environment was the ONLY environment the tests would be run on so it’d drop everything and start fresh.

Nevertheless, I’d love to see all of our commands get the 1.0 rewrite prior to 1.0 and then at least one Pester Test for each command. So that’s the final goal, whenever that’ll be, likely in December/January (maybe;))

in the meantime

In the meantime, we’re actually releasing quite often nowadays – sometimes up to 3 times a day! That’s because I feel a lot more confident when I see all the green generated by our integration tests.

If you’d like to keep up with the latest releases and use Windows 10, consider Watch-DbaUpdate. Note that Install-DbaWatchUpdate does require running as admin in order to automatically setup the scheduled task.

ttys

Once the webpages for these commands have been written, I’ll do the formal, beautiful release of picklerick.

- Chrissy

Leave a Reply

Your email address will not be published. Required fields are marked *