我希望通过使用powershell(或WMI)查询来查找IIS的版本。
以下是我使用的查询。
Get-WmiObject -namespace "root\microsoftiisv2" -query "select MajorIIsVersionNumber from IISWebInfo"
我在一台安装有‘IIS 8’的‘Windows 8’电脑上使用powershell控制台测试了这个查询。但结果是7,而期望的版本号是8。
请问有人可以帮我解决这个问题吗?
我希望通过使用powershell(或WMI)查询来查找IIS的版本。
以下是我使用的查询。
Get-WmiObject -namespace "root\microsoftiisv2" -query "select MajorIIsVersionNumber from IISWebInfo"
我在一台安装有‘IIS 8’的‘Windows 8’电脑上使用powershell控制台测试了这个查询。但结果是7,而期望的版本号是8。
请问有人可以帮我解决这个问题吗?
您可以尝试:
get-itemproperty HKLM:\SOFTWARE\Microsoft\InetStp\ | select setupstring,versionstring
HKLM:\SOFTWARE\Microsoft\InetStp\VersionString
是获取版本的方式?否则,这种逆向工程在键/值被更改时可能会严重破坏... - Pacerier尽管这个帖子有点旧了,但这是我首先找到的链接。所以我想让你知道我发现了什么。
以下命令帮助我在IIS 8.5(Windows 2012 R2)和7.5 Windows 7 SP1上正确查找了IIS版本。
[System.Diagnostics.FileVersionInfo]::GetVersionInfo("$env:SystemRoot\system32\inetsrv\InetMgr.exe").ProductVersion
参考:
https://forums.iis.net/p/1171695/1984536.aspx :来自 f00_beard 的回答
如果您需要进行订单比较,而且需要小数值。
$iisInfo = Get-ItemProperty HKLM:\SOFTWARE\Microsoft\InetStp\
$version = [decimal]"$($iisInfo.MajorVersion).$($iisInfo.MinorVersion)"
$pwd = convertto-securestring "yourstrongpasswordhere" -asplaintext -force
$cred=new-object -typename System.Management.Automation.PSCredential -argumentlist "machinenamehere\adminusernamehere",$pwd
$iisversion= Invoke-Command -ComputerName $machineName -ScriptBlock {
$(get-itemproperty HKLM:\SOFTWARE\Microsoft\InetStp\).setupstring
} -Credential $cred
Write-Host iisversion = $iisversion
If($iisversion -like '*IIS 6*'){
Write-Host This server uses IIS6
}
If($iisversion -like '*IIS 7*'){
Write-Host This server uses IIS7
}
就版本而言,我更喜欢检查w3wp可执行文件上的信息。 根据微软的“如何”文章:
If(Test-Path $w3wpPath) {
$productProperty = Get-ItemProperty -Path $w3wpPath
Write-Host $productProperty.VersionInfo.ProductVersion
}
Else {
Write-Host "Not find IIS."
}