![如何检测每个 Windows 操作系统是否与 powershell 一起使用](https://linux22.com/image/1495167/%E5%A6%82%E4%BD%95%E6%A3%80%E6%B5%8B%E6%AF%8F%E4%B8%AA%20Windows%20%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E6%98%AF%E5%90%A6%E4%B8%8E%20powershell%20%E4%B8%80%E8%B5%B7%E4%BD%BF%E7%94%A8.png)
我想检查远程机器上使用的 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>