为何$PSVersionTable.BuildVersion与[System.Environment]::OSVersion.Version输出不同?哪个更可靠?
PowerShell版本命令差异说明
差异原因
$PSVersionTable.BuildVersion:这个参数返回的是PowerShell自身依赖的.NET运行时/框架的构建版本,而非Windows系统的真实版本。以Windows PowerShell 5.x为例,它绑定了特定版本的.NET Framework,后续Windows系统更新不会同步更新这个值,所以会停留在PowerShell初始安装时对应的旧构建号(比如示例中的19041)。[System.Environment]::OSVersion.Version:这个命令直接从Windows系统内核读取版本信息,会随着系统的累积更新(比如Win10 22H2这类更新)实时同步,能准确反映当前系统的实际构建号(比如示例中的19045)。
可靠性判断
- 若要获取当前Windows操作系统的真实版本,
[System.Environment]::OSVersion.Version的结果更可靠。 - 若要确认PowerShell自身依赖的.NET运行时相关构建版本,
$PSVersionTable.BuildVersion的结果是准确的。
内容的提问来源于stack exchange,提问作者SebMa
相关产品推荐
相关产品推荐

