PowerShell 6 является кроссплатформенным, поэтому необходимо было переписать или удалить командлеты, основанные на собственных функциях. По всей видимости, Microsoft так и не удосужилась реализовать Test-NetConnection
другие платформы. Командлеты, которые управляют только системами Windows (например, Storage Spaces), должны были быть удалены. Чтобы получить список всех отсутствующих командлетов, вы можете использовать PowerShell!
Сначала запустите это в PowerShell 5:
Get-Command | select Name, Source | Export-Csv .\cmds5.csv
Затем снова запустите его в PowerShell 6 с другим выходным файлом:
Get-Command | select Name, Source | Export-Csv .\cmds6.csv
Затем мы можем проанализировать файлы на наличие различий, используя любую версию PowerShell:
$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 }
Я проверил это на Windows 10 1703 x86 VM, которая должна иметь довольно свежие среды PowerShell. Я использовал v6.0.2 для PowerShell 6, самой последней стабильной версии. Из 1493 команд в PowerShell 5, 1139 были удалены в PowerShell 6. Я поместил их все в суть . Из 425 команд в PowerShell 6 71 являются новыми, но все, кроме трех, связаны с желаемой конфигурацией состояния. Те последние три являются Get-Uptime
, Remove-Alias
и Remove-Service
. Вы можете увидеть все новые команды в этой другой сущности .