Get Your Shell On
Automate admin tasks easier with the new Windows PowerShell.
By now you've probably heard about Windows PowerShell -- Microsoft's new automation
buddy. If you haven't installed it yet, you really ought to log on to www.microsoft.com/powershell
and get rolling.
Now you're probably thinking, "Great. Yet another scripting language to
learn." Well, not exactly. Sure, PowerShell has a scripting language, just
like the good ol' Cmd.exe shell. The difference is that you're not required
to script to make the PowerShell useful. In fact, by default, PowerShell won't
even run scripts.
PowerShell is indeed a total replacement for the old Cmd shell. Fire up PowerShell
and you can run Dir, Net Share, Copy and all your other favorite command-line
utilities. Of course, PowerShell isn't just a replacement for Cmd. It's much
better. For example, need to know what Service Pack a particular computer is
running? Just run:
Get-WMIObject –class Win32_Operat ingSystem –namespace root\cimv2
–computer DON-PC –property ServicePackMajorVersion
Assuming DON-PC is the computer's name, entering those commands will get you the information you want. Wait a minute -- that's not really any easier, is it? It might seem quicker to use another tool instead of typing all those commands, but this is where PowerShell really starts to shine.
First, you don't need the –class argument name,
because –class is the first argument Get-WmiObject
takes (just run Help Get-WmiObject to check). The
default namespace is already root\Cimv2, so you
don't need to specify that. Also, PowerShell supports aliases, which are like
nicknames for commands. Run Get-Alias to see them
all. Notice that Gwmi is aliased to Get-WmiObject.
So now we're down to this:
Gwmi Win32_OperatingSystem –com puter DON-PC –property ServicePackMajorVersion
You get the same result with less typing. But hold on, it gets even better.
You only need to type enough of each argument name to distinguish it from any
other arguments. Try this:
Gwmi Win32_OperatingSystem –co DON-PC –pr ServicePackMajorVersion
That's much less typing. Want to see what commercial software products are installed on your target machine?
Gwmi Win32_Product –co DON-PC
What Windows admin task would
you like to see automated next? Send your suggestions directly
to Don at email@example.com.
You can also send them to firstname.lastname@example.org,
just be sure to include Mr. Roboto in the subject line.
That's super simple. In fact, all you really need to know is what WMI classes
(like Win32_Product and Win32_OperatingSystem)
are available for you to use. PowerShell will be happy to list them all. Just
run Gwmi –list (just add –computer
to check a remote computer's classes).
Of course, if you actually start scripting with PowerShell, you can bundle
up even more complex statements, control output formatting and more. You'll
see more PowerShell coming your way in future months. Remember: even if you
have no interest whatsoever in scripting (despite that being a somewhat shortsighted,
career-limiting view these days), PowerShell is an excellent interactive, on-demand
tool for Windows administration.
PowerShell's strength isn't limited to just Windows, either. Exchange Server
2007, Systems Center Operations Manager 2007 (the new name for MOM) and most
future Windows Server System products will base their entire administrative
architecture on PowerShell. That makes PowerShell a one-stop shop for running
your entire Windows enterprise.
Don Jones is a multiple-year recipient of Microsoft’s MVP Award, and is an Author/Evangelist for video training company Pluralsight. Don is also a co-founder and President of PowerShell.org, a community dedicated to Microsoft’s Windows PowerShell technology. Don has more than two decades of experience in the IT industry, and specializes in the Microsoft business technology platform. He’s the author of more than 50 technology books, an accomplished IT journalist, and a sought-after speaker and instructor at conferences worldwide. Reach Don on Twitter at @concentratedDon, or on Facebook at Facebook.com/ConcentratedDon.