107 neue Commandlets in PowerShell 2.0

Der Dotnet-Doktor  –  0 Kommentare

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