如果我在Windows 10或Windows 11上运行以下版本测试,则它们都会将“$Major”报告为10,“$Minor”报告为0,因此此测试不足以确定我们是否在Windows 10或Windows 11上运行。
在PowerShell中,我们如何区分是否在运行Windows 10或Windows 11?
[version]$OSVersion = [Environment]::OSVersion.Version
$Major = $OSVersion.Major
$Minor = $OSVersion.Minor
# Other ways to test:
# $OSVersion = [Version](Get-ItemProperty -Path "$($Env:Windir)\System32\hal.dll" -ErrorAction SilentlyContinue).VersionInfo.FileVersion.Split()[0]
# [version]$OSVersion = Get-CimInstance -Class Win32_OperatingSystem | Select-Object -ExpandProperty Version
在PowerShell中,我们如何区分是否在运行Windows 10或Windows 11?
Get-ComputerInfo
方法,它非常有效,但似乎速度相当慢,因为它必须处理Get-ComputerInfo
详细信息中的所有内容(我猜这与systeminfo
命令执行的操作相同)。如果我们可以找到生成OsName
的确切方法,那就太完美了。我在注册表中进行了“Microsoft Windows 10 Pro”的全文搜索,但该文本不存在。 - YorSubsget-ciminstance -query "select caption from win32_operatingsystem"
或者在 If 语句中使用它:If (get-ciminstance -query "select caption from win32_operatingsystem where caption like '%Windows 11%'"){}
- Toniget-computerinfo -Property OsName
命令,但奇怪的是,它仍会查询许多不相关的信息,如 CPU 和网络信息 :(. - zett42