2013-05-28 38 views
17

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

以下是我用過的查詢。

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

我測試了這個查詢使用PowerShell控制檯在「Windows 8」PC與'IIS 8'。但結果是7,其中預期版本號是8.

有人可以幫我解決這個問題嗎?

+0

此問題的答案可能有所幫助:[「如何確定安裝的IIS版本」](http://stackoverflow.com/questions/435050/how-to-determine-installed-iis-version) –

回答

20

你可以試試:

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

這將給出正確的答案,但如果存在相同的WMI或Powershell查詢,那將會很好。 –

+0

@ user1805353對不起,但我不知道其他方法,也許PowerShell的'webadministration'模塊可以提供幫助。 –

+1

這不可靠,因爲它可以在沒有安裝IIS的服務器上返回值。無論他們是否曾經使用過IIS,我現在還不能確認,但我可以肯定地確認IIS沒有運行/安裝在某些擁有此註冊密鑰的機器上。 – Robin

1

下面是我創建基於來自@ C.B答案有點腳本塊功能。從遠程計算機獲取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 
} 
3

如果您想要訂購比較的小數值。

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

老實說,我認爲這應該使用'[version]'類型而不是十進制。如果有一個版本10.10,如果使用了一個十進制類型,它將小於版本10.2。 – arjabbar

1

即使線程有點舊,這是我首先登陸的鏈接。所以讓你知道我發現了什麼。

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