Da PowerShell 6 plattformübergreifend ist, mussten Cmdlets, die sich auf native Funktionen stützten, neu geschrieben oder entfernt werden. Anscheinend hat sich Microsoft nie Test-NetConnection
für andere Plattformen reimplementiert . Cmdlets, die nur Windows-Systeme verwalten (z. B. Speicherbereiche), mussten alle entfernt werden. Um eine Liste aller fehlenden Cmdlets zu erstellen, können Sie PowerShell verwenden!
Führen Sie dies zunächst in PowerShell 5 aus:
Get-Command | select Name, Source | Export-Csv .\cmds5.csv
Führen Sie es dann erneut in PowerShell 6 mit einer anderen Ausgabedatei aus:
Get-Command | select Name, Source | Export-Csv .\cmds6.csv
Anschließend können wir die Dateien mit einer der beiden PowerShell-Versionen auf Unterschiede analysieren:
$cmd5 = Import-Csv .\cmds5.csv $cmd6 = Import-Csv .\cmds6.csv $gone = $cmd5 | ? { $n = $_.Name; ($cmd6 | ? { $_.Name -eq $n }) -eq $null } $new = $cmd6 | ? { $n = $_.Name; ($cmd5 | ? { $_.Name -eq $n }) -eq $null }
Ich habe dies in einer Windows 10 1703 x86-VM getestet, die ziemlich neue PowerShell-Umgebungen enthalten sollte. Ich habe v6.0.2 für PowerShell 6 verwendet, die letzte stabile Version. Von den 1493 Befehlen in PowerShell 5 wurden 1139 in PowerShell 6 entfernt. Ich habe sie alle in einem Kern zusammengefasst . Von den 425 Befehlen in PowerShell 6 sind 71 neu, von denen jedoch alle drei mit der gewünschten Statuskonfiguration zu tun haben. Diejenigen letzten drei sind Get-Uptime
, Remove-Alias
und Remove-Service
. Sie können alle neuen Befehle in dieser anderen Übersicht sehen .