Powershell 6 缺少 cmdlet

Powershell 6 缺少 cmdlet

为什么这些 cmdletTest-NetConnection不再可用?看来整个NetTCPIP模块不在 v6 中。Powershell Core 中是否有弃用的 cmdlet 列表?

Get-Module -n Microsoft.PowerShell.Management | select -exp ExportedCommandsv6 中约为 v5 中的一半。

答案1

PowerShell 6 是跨平台的,因此依赖本机函数的命令必须重写或删除。显然,微软从未Test-NetConnection为其他平台重新实现。管理仅限 Windows 系统的命令(例如存储空间)都必须删除。要生成所有缺失命令的列表,您可以使用 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 中测试了这一点,该 VM 应该具有相当新鲜的 PowerShell 环境。我使用了v6.0.2适用于最新的稳定版本 PowerShell 6。在 PowerShell 5 中的 1493 个命令中,1139在 PowerShell 6 中被删除。我将它们全部放入要点。在 PowerShell 6 的 425 个命令中,有 71 个是新命令,其中除三个命令外,其余均与所需状态配置有关。最后三个命令是Get-UptimeRemove-AliasRemove-Service。您可以在以下位置查看所有新命令其他要点

相关内容