2013-05-28 37 views
17

Tôi muốn tìm phiên bản IIS bằng truy vấn powershell (hoặc WMI).Tìm phiên bản IIS bằng powershell

Sau đây là truy vấn mà tôi đã sử dụng.

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

Tôi đã thử truy vấn này bằng bàn điều khiển powershell trong máy tính 'Windows 8' với 'IIS 8'. Nhưng kết quả là 7, trong đó số phiên bản dự kiến ​​là 8.

Ai đó có thể giúp tôi giải quyết vấn đề này ?.

+0

Câu trả lời cho câu hỏi này có thể hữu ích: ["Cách xác định phiên bản IIS đã cài đặt"] (http://stackoverflow.com/questions/435050/how-to-determine-installed-iis-version) –

Trả lời

20

Bạn có thể thử:

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

Điều này sẽ cung cấp cho câu trả lời đúng, Nhưng nó sẽ là tuyệt vời nếu có một WMI hoặc Powershell truy vấn cho cùng một. –

+0

@ user1805353 Tôi xin lỗi nhưng tôi không biết các phương pháp khác, có thể mô-đun 'quản trị web' của powershell có thể giúp bạn. –

+1

Điều này không đáng tin cậy vì nó có thể trả về giá trị trên các máy chủ không cài đặt IIS. Có hay không họ đã từng có IIS trên, tôi không thể xác nhận chỉ được nêu ra, nhưng tôi chắc chắn có thể xác nhận IIS không chạy/cài đặt trên một số máy có phím reg này. – Robin

1

Dưới đây là một chức năng ScriptBlock nhỏ mà tôi tạo ra dựa trên câu trả lời từ @ C.B. để có được phiên bản IIS từ một máy tính từ xa.

$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

Nếu bạn muốn giá trị thập phân cho so sánh đơn hàng.

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

Thành thật mà nói, tôi nghĩ rằng điều này nên sử dụng '[phiên bản]' loại thay vì thập phân. Nếu có phiên bản 10.10, nó sẽ nhỏ hơn phiên bản 10.2 nếu sử dụng loại thập phân. – arjabbar

1

Mặc dù chủ đề ít cũ, đây là liên kết tôi đã hạ cánh trước. Vì vậy, cho bạn biết những gì tôi tìm thấy.

Lệnh dưới đây đã giúp tôi tìm phiên bản IIS chính xác trên IIS 8.5 (Windows 2012 R2) và 7.5 Windows 7 SP1.

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

tham khảo:.

https://forums.iis.net/p/1171695/1984536.aspx: Trả lời từ f00_beard

Các vấn đề liên quan