我在使用PowerShell比较IE版本时遇到了问题。
我有以下代码:
$CurVersion = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Internet Explorer').Version
Write-Host "Current Version Of IE is $CurVersion"
IF ($CurVersion -gt "11.*")
{
"IE is up to date"
}
ELSE
{
"IE needs to be updated"
}
但是,此代码不起作用,因为$ curversion存储为字符串。 9.11.9600.17914 IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True String System.Object
我可以删除部分版本号,将其转换为int并以此方式进行比较,但我确信必须有一种更简单,更简单的方法。
有人可以帮我这个吗?
提前致谢。
答案 0 :(得分:0)
$CurVersion = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Internet Explorer').Version.Substring(2)
添加.substring(2)应该删除9.并使当前脚本工作到一定程度,该脚本将遇到IE9的问题。如果这不是问题,请继续阅读并停止阅读。
对于IE的所有版本,您可以使用以下代码。这将占IE 9版本“9.0”,IE 10和11(“9.1”)以及9以下的其他任何内容落入其他结尾。
$CurVersion = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Internet Explorer').Version
IF ($CurVersion.StartsWith("9.0"))
{
$CurVersion2 = $CurVersion
}
ElseIF ($CurVersion.StartsWith("9.1"))
{
$CurVersion2 = $CurVersion.Substring(2)
}
Else
{
$CurVersion2 = $CurVersion
}
Write-Host "Current Version Of IE is $CurVersion2"
IF ($CurVersion2 -gt "11.*")
{
"IE is up to date"
}
ELSE
{
"IE needs to be updated"
}