PowerShell 6 is cross-platform, so cmdlets that relied on native functions had to be rewritten or removed. Apparently Microsoft never got around to reimplementing Test-NetConnection
for other platforms. Cmdlets that manage Windows-only systems (e.g. Storage Spaces) all had to be removed. To produce a list of all the missing cmdlets, you can use PowerShell!
First run this in PowerShell 5:
Get-Command | select Name, Source | Export-Csv .\cmds5.csv
Then run it again in PowerShell 6 with a different output file:
Get-Command | select Name, Source | Export-Csv .\cmds6.csv
We can then analyze the files for differences using either PowerShell version:
$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 }
I tested this in a Windows 10 1703 x86 VM that should have pretty fresh PowerShell environments. I used v6.0.2 for PowerShell 6, the most recent stable version. Of the 1493 commands in PowerShell 5, 1139 were removed in PowerShell 6. I put them all in a gist. Of the 425 commands in PowerShell 6, 71 are new, all but three of which have to do with desired state configuration. Those last three are Get-Uptime
, Remove-Alias
, and Remove-Service
. You can see all new commands in this other gist.
NetTCPIP
PowerShell module only exist within the Windows and has not been ported to PowerShell 6.