Perlの様な文法を持つシェルだそうです。.NETが自由自在に使える(?)のかも。
# Over 130 standard utilities (called “cmdlets) for completing common system administration tasks such as working with the registry, services, processes, Windows Management Instrumentation, event logs, etc..
# Intuitive, task-based scripting language and support for existing scripts and command line tools..
# Designed for consistency so all tools and system data stores follow a common syntax, common naming conventions and information can be easily shared/piped between tools.
# Simplified command-based navigation of the operating system (including drives, startup files, and registry).
# Powerful object manipulation capabilities (objects can be directly manipulated or pipelined to other tools or databases).
# Designed for extensibility so that independent software vendors and enterprise developers can easily build custom tools and utilities to administer their software.
WindowsXP以上が必要らしい。
インストールされたプログラムくらいは簡単にリストできるようになっているようです。次がMSDNに掲載されていたインストールされたプログラムをリストするコードです。とても簡単ですね。
$strComputer = "." $colItems = get-wmiobject -class "Win32_Product" -namespace "root\CIMV2" ` -computername $strComputer foreach ($objItem in $colItems) { write-host "Caption: " $objItem.Caption write-host "Description: " $objItem.Description write-host "Identifying Number: " $objItem.IdentifyingNumber write-host "Installation Date: " $objItem.InstallDate write-host "Installation Date 2: " $objItem.InstallDate2 write-host "Installation Location: " $objItem.InstallLocation write-host "Installation State: " $objItem.InstallState write-host "Name: " $objItem.Name write-host "Package Cache: " $objItem.PackageCache write-host "SKU Number: " $objItem.SKUNumber write-host "Vendor: " $objItem.Vendor write-host "Version: " $objItem.Version write-host }
http://www.microsoft.com/technet/scriptcenter/scripts/msh/apps/user/usapms01.mspx
今までWindowsでバッチ処理というとWSHによりVBScript/JScriptで記述する事が普通でしたがPerl風のPowerShellもオプションに加えられた形になります。どう便利なのか今ひとつ分かっていませんがサンプルコードを見る限りは非常に簡単にWindowsの情報を取得して処理を行えるようになっている様です。
Exchange Server 2007 and System Center Operations Manager 2007 (Microsoft Operations Manager “V3”) will be built upon Windows PowerShell.
Exchange Server 2007はPowerShellを使って構築されている、と書かれています。色々複雑な処理も簡単(?)に行えるような言語になっていると思われます。Windowsでバッチ処理が必要な場合はPowerShellも良い選択肢なのかも知れないです。