当我尝试将我的操作系统版本“Microsoft Windows Server 2008 R2 Enterprise”与Win32_OperatingSystem进行比较时,选择标题结果会导致错误。
示例:
$Server='Computername' #Computername which has OS Version 'Microsoft Windows Server 2008 R2 Enterprise'
$OSVersion = Invoke-command -computername $Server -scriptblock {Get-WmiObject -class Win32_OperatingSystem | select Caption}
#OS Version comparing with Win32_OperatingSystem caption
If ($OSVersion.Caption -eq 'Microsoft Windows Server 2008 R2 Enterprise')
{
Write-Host 'True'
}
Else
{ Write-Host 'False'}
结果:
False
但它应该导致True。有人可以解释为什么即使我的操作系统版本和选择标题是正确的,它也会导致错误。
答案 0 :(得分:0)
如果您运行此命令
Get-WmiObject -class Win32_OperatingSystem -ComputerName insert the computername | select Caption
结果是否真的是Microsoft Windows Server 2008 R2 Enterprise?
如果我在我的电脑上运行这样的脚本
$Server='laptop090' #Computername which has OS Version 'Microsoft Windows Server 2008 R2 Enterprise'
$OSVersion = Get-WmiObject -class Win32_OperatingSystem -ComputerName $Server | select Caption
#OS Version comparing with Win32_OperatingSystem caption
If ($OSVersion.Caption -eq 'Microsoft Windows 10 Pro Insider Preview')
{
Write-Host 'True'
}
Else
{ Write-Host 'False'}
工作
答案 1 :(得分:0)
我在下面的脚本中执行了解为什么会产生错误'错误' for OS Version' Microsoft Windows Server 2008 R2 Enterprise'
$Server='ComputerName'
$OSVersion = 'Microsoft Windows Server 2008 R2 Enterprise'
$OSVersionCaption = Invoke-command -computername $Server -scriptblock {Get-WmiObject -class Win32_OperatingSystem | select Caption}
$OSVersionCaption.Caption.length
$OSVersion.length
Result:
43
44
看到结果我真的很惊讶。长度不匹配,发现在操作系统版本和Microsoft Windows Server 2008 R2企业版的末尾有一个空格。引起了这个问题。 此问题仅适用于操作系统版本和Microsoft Windows Server 2008 R2 Enterprise'而不是其他操作系统版本。
结论以下命令没有问题。操作系统版本' Microsoft Windows Server 2008 R2 Enterprise'
的问题Get-WmiObject -class Win32_OperatingSystem | select Caption
有人可以尝试使用操作系统版本' Microsoft Windows Server 2008 R2 Enterprise'并确认。