Powershell 6 cmdlets ausentes

2

Por que os cmdlets, como Test-NetConnection , não estão mais disponíveis? Parece que o módulo NetTCPIP inteiro não está na v6. Existe uma lista de cmdlets depreciados no Powershell Core?

Get-Module -n Microsoft.PowerShell.Management | select -exp ExportedCommands em v6 é cerca de metade disso em v5.

    
por root 07.05.2018 / 17:06

1 resposta

1

O PowerShell 6 é de plataforma cruzada, portanto, os cmdlets que dependiam de funções nativas precisavam ser reescritos ou removidos. Aparentemente, a Microsoft nunca conseguiu reimplementar Test-NetConnection para outras plataformas. Os cmdlets que gerenciam sistemas somente do Windows (por exemplo, Storage Spaces) precisavam ser removidos. Para produzir uma lista de todos os cmdlets ausentes, você pode usar o PowerShell!

Primeiro, execute isso no PowerShell 5:

Get-Command | select Name, Source | Export-Csv .\cmds5.csv

Em seguida, execute-o novamente no PowerShell 6 com um arquivo de saída diferente:

Get-Command | select Name, Source | Export-Csv .\cmds6.csv

Podemos analisar os arquivos por diferenças usando a versão do 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 }

Eu testei isso em uma VM do Windows 10 1703 x86 que deveria ter ambientes PowerShell muito novos. Eu usei v6.0.2 para o PowerShell 6, a versão estável mais recente. Dos 1493 comandos no PowerShell 5, 1139 foram removidos no PowerShell 6. Coloco todos em uma essência . Dos 425 comandos no PowerShell 6, 71 são novos, todos, exceto três, que têm a ver com a configuração de estado desejada. Esses três últimos são Get-Uptime , Remove-Alias e Remove-Service . Você pode ver todos os novos comandos em essa outra essência .

    
por 30.05.2018 / 22:04