The dbatools.io project is growing up rapidly. I went to check something the other day and I was amazed at the command list. This used to fit on one page. Now it’s not close. Here's the first page:
In fact, it doesn’t fit on two pages. Here’s the part below the fold.
It’s crazy how quickly this project has grown, and how many cmdlets are available to help you not only migrate objects and settings between instances, but perform useful operations on your systems and test or change their configuration. I’m starting to think that this needs to be required for most people that manage systems. The ways that you can easily manage your systems in a programmatic manner has dramatically changed with this module.
I was surprised the other day when I saw a blog post for a cmdlet I didn't know existed. I went to try it on my system and it wasn't available. I'd updated the module the previous week, but apparently there are new changes on a regular basis. I might need to update my module more often, and there's a cmdlet to help me do that!
Those of us that have a lot of experience with SQL Server might find some of these tasks easier in T-SQL. I certainly spend more time inside the platform than out of it, but there are definitely advantages to using PowerShell to enforce consistency and easily work with multiple machines is nice. These utilities are often like scripts or procedures I've written to handle simple tasks in a wrapper-like fashion. dbatools do that from PoSh, and allow me to easily string together disparate comands. I won't give up T-SQL anytime soon, but I'll do more with dbatools than I might do with PoSh otherwise.
If you haven't tried this project, you ought to. This will make it easier to learn PoSh and work with SQL Server. Maybe you'll enjoy it enough to built your own module and contribute to the project. There are still holes, especially in the SSIS area, though I expect new cmdlets to appear any day.