Is Vanilla Powershell Enough of a Language for Windows & DB Server Admins?

Does a clean install of PowerShell on its own have enough functionally to Admin a Windows domain environment and/or SQL Servers?

If not what are good, free or pay for, third party add-ons?


Solution 1:

To answer this question, you need to zoom out to the bigger picture and ask what it means to administer Windows and SQL Servers. For example, how many of these other things do you have in your environment:

  • Third party backup products like NetBackup or BackupExec
  • Antivirus products
  • Storage tools
  • Firewalls or web filtering software
  • Hardware alerting (like IBM Director or HP SIM)

All of these things have their own mechanisms for management, and since PowerShell is still relatively new, not all services will be PowerShell-enabled. For now, you may need to jump out of PowerShell in order to manage things like those.

On the flip side, there's no other language that works better across all of those Windows tools either.

When you say "functionality to administer servers", that doesn't come from a Windows language yet. In the *nix world, you can stay inside a scripting environment, but the Windows world isn't quite there yet.

Solution 2:

The answer to your first question is a resounding "YES".

To manage an existing Windows domain, "vanilla" PowerShell (no additional snapins) provides out of the box support for WMI, ADSI, COM, and .NET.

Managing remote machines is handled through WMI (or COM / .NET depending on the use case).

Managing SQL Server can use the SMO libraries (see the SQL Server PowerShell Extensions for ideas). You can access data via ADO.NET.

To answer the second part of your question, as to what are good third party addons, really depends on what you need to do. As John Cook mentioned, the PowerShell Community Extensions are a great general addition. There are many, many others. PowerShellCommunity.Org has a number of great references for third party products and Codeplex has a great number of open source PowerShell projects.

More Microsoft products are adding PowerShell support (like SQL Server 2008, Exchange, Active Directory, etc..)

V2 (which is getting near) contains some great remoting and background job capabilities.

Solution 3:

Powershell doesn't ship with SQL administration tools, although you could continue to use things like osql or isql. I know there are Powershell addins that let you "mount" a SQL server and navigate it like it was a file system (much like the Registry stuff that's built in).

Solution 4:

The PowerShell Community Extenstions (PSCX) are free and convenient to have.