Für die iX-Ausgabe 8/2009 schreibe ich gerade an einem Artikel über die Windows PowerShell Version 2.0, die Ende Juli zusammen mit Windows 7 erscheinen wird, in Windows Server 2008 R2 enthalten ist und die es auch als Erweiterung zu XP, Vista und Server 2003/2008 geben wird.
  
Die Dokumentation zur PowerShell 2.0 enthält leider keine vollständige Liste aller neuen Commandlets. Daher habe ich folgende Daten selbst ermittelt (mit Windows Server 2008 R2 RC1):
Die PowerShell 2.0 enthält in der Grundausstattung 236 Commandlets sowie 37 eingebaute Funktionen. In Windows PowerShell 1.0 waren es 129 Commandlets und 34 eingebaute Funktionen. Ermitteln Sie dies mit (get-command) | group commandtype. get-command liefert unter Windows PowerShell 2.0 sowohl Commandlets als auch eingebaute Funktionen (deren Handhabung oft denen von Commandlets entspricht, nur die Art der Implementierung ist anders). Unter PowerShell 1.0 muss man die Funktionen separat zählen mit (dir function:).count
Eine Liste der neuen Commandlets bekommt man auf folgendem Weg:
Auf einem System mit PowerShell 1.0:
 get-command | ft name -hide | out-file c:\temp\wps1_commandlets.txt<br /> dir function: | ft Name -hide | out-file c:\temp\wps1_commandlets.txt -Append 
Auf einem System mit PowerShell 2.0 (dies exportiert Commandlets und Funktionen):
 get-command | ft name -hide | out-file c:\temp\wps\wps2_commandlets.txt 
Dann führt man beide Textdateien auf einem System zusammen und führt dort aus:
 $wps1 = get-content c:\temp\wps1_Commandlets.txt | sort<br /> $wps2 = get-content c:\temp\wps2_Commandlets.txt | sort<br /> compare-object $wps1 $wps2 -syncwindow 2000 | foreach { ([string]$_.Inputobject).Trim() } | out-file c:\temp\wps2_Commandlets_neu.txt 
Dann erhält man folgende Liste (107 Commandlets und 5 Funktionen):
  
  
Add-Computer
 Add-Type
 cd.. (Funktion)
 cd\ (Funktion)
 Checkpoint-Computer
 Clear-EventLog
 Clear-History
 Complete-Transaction
 Connect-WSMan
 ConvertFrom-Csv
 ConvertFrom-StringData
 ConvertTo-Csv
 ConvertTo-Xml
 Debug-Process
 Disable-ComputerRestore
 Disable-PSBreakpoint
 Disable-PSRemoting (Funktion)
 Disable-PSSessionConfiguration
 Disable-WSManCredSSP
 Disconnect-WSMan
 Enable-ComputerRestore
 Enable-PSBreakpoint
 Enable-PSRemoting
 Enable-PSSessionConfiguration
 Enable-WSManCredSSP
 Enter-PSSession
 Exit-PSSession
 Export-Counter
 Export-FormatData
 Export-ModuleMember
 Export-PSSession
 Get-ComputerRestorePoint
 Get-Counter
 Get-Event
 Get-EventSubscriber
 Get-FormatData
 Get-HotFix
 Get-Job
 Get-Module
 Get-PSBreakpoint
 Get-PSCallStack
 Get-PSSession
 Get-PSSessionConfiguration
 Get-Random
 Get-Transaction
 Get-Verb (Funktion)
 Get-WinEvent
 Get-WSManCredSSP
 Get-WSManInstance
 Import-Counter
 Import-LocalizedData
 Import-Module
 Import-PSSession
 ImportSystemModules (Funktion)
 Invoke-Command
 Invoke-WmiMethod
 Invoke-WSManAction
 Limit-EventLog
 New-Event
 New-EventLog
 New-Module
 New-ModuleManifest
 New-PSSession
 New-PSSessionOption
 New-WebServiceProxy
 New-WSManInstance
 New-WSManSessionOption
 Out-GridView
 Receive-Job
 Register-EngineEvent
 Register-ObjectEvent
 Register-PSSessionConfiguration
 Register-WmiEvent
 Remove-Computer
 Remove-Event
 Remove-EventLog
 Remove-Job
 Remove-Module
 Remove-PSBreakpoint
 Remove-PSSession
 Remove-WmiObject
 Remove-WSManInstance
 Reset-ComputerMachinePassword
 Restart-Computer
 Restore-Computer
 Select-Xml
 Send-MailMessage
 Set-PSBreakpoint
 Set-PSSessionConfiguration
 Set-StrictMode
 Set-WmiInstance
 Set-WSManInstance
 Set-WSManQuickConfig
 Show-EventLog
 Start-Job
 Start-Process
 Start-Transaction
 Stop-Computer
 Stop-Job
 Test-ComputerSecureChannel
 Test-Connection
 Test-ModuleManifest
 Test-WSMan
 Undo-Transaction
 Unregister-Event
 Unregister-PSSessionConfiguration
 Update-List
 Use-Transaction
 Wait-Event
 Wait-Job
 Wait-Process
 Write-EventLog
 Microsoft hat von PowerShell 1.0 zu PowerShell 2.0 die Implementierung einiger Befehle geändert. Clear-Host war in PowerShell 1.0 eine Funktion und ist in 2.0 ein Commandlet. man und md waren in PowerShell 1.0 Funktionen und sind zu Aliase. "man" ist alias für "Help" und "md" für die Funktion "mkdir" 
Viele Commandlets haben sehr schöne Namen und sind daher selbsterklärend. Ansonsten hilft: Get-Help (Name) z.B. Get-Help New-PSSession
()