Ответ 1
Вы можете попробовать:
get-itemproperty HKLM:\SOFTWARE\Microsoft\InetStp\ | select setupstring,versionstring
Я хочу найти версию IIS с помощью запроса powershell (или WMI).
Ниже приведен запрос, который я использовал.
Get-WmiObject -namespace "root\microsoftiisv2" -query "select MajorIIsVersionNumber from IISWebInfo"
Я протестировал этот запрос с помощью консоли powershell на ПК с Windows 8 с "IIS 8". Но результат равен 7, где ожидаемая версия Number равна 8.
Может кто-нибудь помочь мне решить эту проблему?
Вы можете попробовать:
get-itemproperty HKLM:\SOFTWARE\Microsoft\InetStp\ | select setupstring,versionstring
Если вам нужно десятичное значение для сравнения порядка.
$iisInfo = Get-ItemProperty HKLM:\SOFTWARE\Microsoft\InetStp\
$version = [decimal]"$($iisInfo.MajorVersion).$($iisInfo.MinorVersion)"
Вот небольшая функция ScriptBlock, которую я создал на основе ответа от @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
}
Несмотря на то, что поток немного стар, эта ссылка я приземлился в первую очередь. Так что давайте вам знать, что я нашел.
Следующая команда помогла мне правильно найти версию 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