使用PowerShell查找IIS的版本

时间:2013-05-28 05:36:54

标签: iis powershell

我希望使用powershell(或WMI)查询找到IIS的版本。

以下是我使用的查询。

Get-WmiObject -namespace "root\microsoftiisv2" -query "select MajorIIsVersionNumber from IISWebInfo"

我在带有'IIS 8'的'Windows 8'PC中使用powershell控制台测试了此查询。但结果是7,其中预期的版本号是8.

有人可以帮我解决这个问题吗?。

5 个答案:

答案 0 :(得分:24)

您可以尝试:

get-itemproperty HKLM:\SOFTWARE\Microsoft\InetStp\  | select setupstring,versionstring 

答案 1 :(得分:4)

即使线程有点旧,这也是我首先登陆的链接。所以让你知道我发现了什么。

以下命令帮助我在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

的回答

答案 2 :(得分:3)

如果您想要小数值进行订单比较。

$iisInfo = Get-ItemProperty HKLM:\SOFTWARE\Microsoft\InetStp\
$version = [decimal]"$($iisInfo.MajorVersion).$($iisInfo.MinorVersion)"

答案 3 :(得分:1)

这是我根据@ C.B的答案创建的一个小ScriptBlock函数。从远程计算机获取IIS版本。

$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
}

答案 4 :(得分:0)

对于纯粹的版本,我更喜欢检查w3wp可执行文件上的信息。 Per the "how-to" article from MSFT

var appRoot = require('app-root-path');
import foo from appRoot + "/foo/bar/folders/bla/bla"

or

import foo from `${appRoot}/foo/bar/folders/bla/bla` <-- string literals