如何检测每个 Windows 操作系统是否与 powershell 一起使用

Hkm*_*oub 2 windows powershell

我想检查远程机器中使用的是哪个版本的 Windows,我正在使用以下命令:

$version=[Environment]::OSVersion.Version | % {"{0}.{1}.{2}" -f $_.Major,$_.Minor,$_.Build}
Run Code Online (Sandbox Code Playgroud)

我得到例如 windows 7 的结果:6.1.7600

但我发现了一个问题:

Windows Server 2012 R2 有:6.1.9600

和 Windows 8.1 也是:6.1.9600

所以我想知道是否有其他解决方案来获取 Windows 版本?

Sim*_*onS 6

另一种解决方案是通过 CIM 获取标题。我认为它最接近你想要的。它可用于检查本地和远程机器。


当地的:

Get-CimInstance Win32_Operatingsystem | Select-Object -expand Caption
Run Code Online (Sandbox Code Playgroud)

示例输出:

PS C:\WINDOWS\system32> Get-CimInstance Win32_Operatingsystem | select -expand Caption
Microsoft Windows 10 Pro
Run Code Online (Sandbox Code Playgroud)

偏僻的:

-computername参数添加到Get-CimInstance

示例输出:

PS C:\WINDOWS\system32> Get-CimInstance Win32_Operatingsystem -ComputerName xy | select -expand Caption
Microsoft Windows 7 Professional
Run Code Online (Sandbox Code Playgroud)

运行Get-CimInstance Win32_Operatingsystem | fl *以查看您还可以选择哪些属性以获得所需的输出。