В 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, Вы можете увидеть все новые команды в этой другой сущности.

Другие вопросы по тегам