В Powershell 6 отсутствуют командлеты
Почему командлеты похожи Test-NetConnection
больше недоступно? Похоже весь NetTCPIP
Модуль отсутствует в v6. Есть ли список устаревших командлетов в Powershell Core?
Get-Module -n Microsoft.PowerShell.Management | select -exp ExportedCommands
в v6 это примерно вдвое меньше, чем в v5.
1 ответ
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
, Вы можете увидеть все новые команды в этой другой сущности.