2013-05-28 13 views
17

Desidero trovare la versione di IIS utilizzando una query di PowerShell (o WMI).Ricerca della versione di IIS tramite PowerShell

Quella che segue è la query che ho utilizzato.

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

Ho testato questa query utilizzando la console di PowerShell in un PC 'Windows 8' con 'IIS 8'. Ma il risultato è 7, dove la versione prevista Numero è 8.

Qualcuno può aiutarmi a risolvere questo problema ?.

+0

Le risposte a questa domanda possono aiutare: ["Come determinare la versione di IIS installata"] (http://stackoverflow.com/questions/435050/how-to-determine-installed-iis-version) –

risposta

20

Si può provare:

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

Questo darà una risposta corretta, ma sarebbe bello se ci fosse una query WMI o PowerShell per lo stesso. –

+0

@ user1805353 Mi dispiace ma non sono a conoscenza di altri metodi, forse il modulo di "webadministration" di PowerShell può essere d'aiuto. –

+1

Non è affidabile poiché può restituire valori su server su cui non è installato IIS. Indipendentemente dal fatto che abbiano o meno installato IIS, non posso ancora confermarlo, ma posso sicuramente confermare che IIS non è in esecuzione/installato su alcune macchine che hanno questa chiave di reg. – Robin

1

Ecco una funzione ScriptBlock poco che ho creato in base alla risposta da @ C.B. per ottenere la versione di IIS da un computer remoto.

$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

Se si desidera il valore decimale per il confronto degli ordini.

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

Onestamente, penso che questo dovrebbe usare il tipo '[versione]' invece del decimale. Se esistesse una versione 10.10, sarebbe inferiore alla versione 10.2 se fosse stato usato un tipo decimale. – arjabbar

1

Anche se il thread è un po 'vecchio, questo è il link che ho atterrato per primo. Quindi facendoti sapere cosa ho trovato.

Il comando seguente mi ha aiutato a trovare correttamente la versione di IIS su IIS 8.5 (Windows 2012 R2) e 7.5 Windows 7 SP1.

[System.Diagnostics.FileVersionInfo] :: GetVersionInfo ("$ ENV: SystemRoot \ system32 \ inetsrv \ inetmgr.exe") ProductVersion

Riferimento:.

https://forums.iis.net/p/1171695/1984536.aspx: Risposta da f00_beard

Problemi correlati