web-dev-qa-db-ja.com

Powershellを使用してIISのバージョンを見つける

Powershell(またはWMI)クエリを使用してIISのバージョンを見つけたいと思います。

以下は、私が使用したクエリです。

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

「IIS 8」を搭載した「Windows 8」PCでPowershellコンソールを使用してこのクエリをテストしました。しかし、結果は7で、予想されるバージョン番号は8です。

誰かがこの問題の解決を手伝ってくれる?.

20

あなたが試すことができます:

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

スレッドは少し古いですが、これが最初に到達したリンクです。だから私が見つけたものをあなたに知らせる。

以下のコマンドは、IISバージョンを正しくIIS 8.5(Windows 2012 R2)および7.5 Windows 7 SP1)で見つけるのに役立ちました。

[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)"
3
Andy McCluggage

@ 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
}
1
Adrian Carr