我使用PowerShell遠程通過WMI使自己的IIS6網站列表(客戶機的Windows 7 64位和服務器是Windows 2003)當通過WMI讀取IIS6網站ServerBindings時,Powershell Remoting中是否存在錯誤?
的問題是,下面不工作:
$websites = Invoke-Command -ComputerName SEVER_NAME -UseSSL { Get-WmiObject -ComputerName SEVER_NAME -Namespace 'root\MicrosoftIISv2' -Class IISWebServerSetting }
$websites[0].ServerBindings[0].Port
港$null
,但
$websites[0].ServerBindings.Count
回報1
我可以使用此解決方案,但它不是conveniant:
$websites = Invoke-Command -ComputerName SEVER_NAME -UseSSL {
Get-WmiObject -ComputerName SEVER_NAME -Namespace 'root\MicrosoftIISv2' -Class IISWebServerSetting |
Select-Object ServerComment, @{
Name="ServerBindingPorts"; Expression =
{
$ports = @();
foreach ($tmpServerBinding in $_.ServerBindings)
{
$ports += $tmpServerBinding.Port
};
return $ports;
}
},@{
Name="SecureBindingPorts"; Expression =
{
$ports = @();
foreach ($tmpSecureBinding in $_.SecureBindings)
{
$ports += $tmpSecureBinding.Port
};
return $ports;
}
}
}
然後我就可以得到端口這樣:
$websites[0].ServerBindingPorts
我有同樣的問題與SecureBindings
財產。
這是一個錯誤還是我錯過了什麼? 我是powershell新手,但我做了幾個小時谷歌,發現我的問題沒有答案。
謝謝,我會給直接的WMI嘗試。至於Port,$ websites [0] .ServerBindings [0] .Port是$ null,ServerBidnings [0]具有這樣的屬性。關於流程列表與管道,謝謝 - 我確定一定有一些捷徑,但正如我所說,我仍然是一個Powershell新手:) –
直接WMI調用服務器給我「訪問被拒絕」。我不確定我是否會打開另一個遠程通道到我的服務器,這就是我決定使用Powershell Remoting的原因。你知道如何讓PS Remoting + WMI + IIS6以它應該的方式工作嗎? –
@PiotrOwsiak WMI訪問被拒絕是DCOM權限(如果DCOM阻止其他人(例如防火牆)的錯誤不同)。回覆。 'Port'爲空我會從WMI自描述的方式開始(從「SecureBindings」的成員類型開始)。由於我沒有IIS6運行,我無法嘗試在這裏。 – Richard