为什么这些 cmdletTest-NetConnection
不再可用?看来整个NetTCPIP
模块不在 v6 中。Powershell Core 中是否有弃用的 cmdlet 列表?
Get-Module -n Microsoft.PowerShell.Management | select -exp ExportedCommands
v6 中约为 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-Uptime
、Remove-Alias
和Remove-Service
。您可以在以下位置查看所有新命令其他要点。