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

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

我想检查远程机器上使用的 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> 

相关内容