我想检查远程机器上使用的 Windows 版本,我使用以下命令:
$version=[Environment]::OSVersion.Version | % {"{0}.{1}.{2}" -f $_.Major,$_.Minor,$_.Build}
我得到的结果例如 Windows 7:6.1.7600
但我发现了一个问题:
Windows Server 2012 R2 有:6.1.9600
以及 Windows 8.1:6.1.9600
所以我想知道是否还有其他解决方案来获取 Windows 版本?
答案1
另一个解决方案是通过 CIM 获取标题。我认为这最接近您想要的。它可用于检查本地和远程机器。
当地的:
Get-CimInstance Win32_Operatingsystem | Select-Object -expand Caption
示例输出:
PS C:\WINDOWS\system32> Get-CimInstance Win32_Operatingsystem | select -expand Caption
Microsoft Windows 10 Pro
偏僻的:
将-computername
参数添加到Get-CimInstance
示例输出:
PS C:\WINDOWS\system32> Get-CimInstance Win32_Operatingsystem -ComputerName xy | select -expand Caption
Microsoft Windows 7 Professional
运行Get-CimInstance Win32_Operatingsystem | fl *
以查看您还可以选择哪些属性来获得所需的输出。
答案2
我想知道是否还有其他解决方案来获取 Windows 版本?
使用以下命令检索完整的版本字符串(其中包括名称、版本和服务包编号:
[Environment]::OSVersion.VersionString
示例输出:
PS F:\test> [Environment]::OSVersion.VersionString
Microsoft Windows NT 6.1.7601 Service Pack 1
PS F:\test>