Я использую Powershell Remoting для получения списка веб-сайтов на IIS6 через WMI (клиентский компьютер - Windows 7 64-разрядная, а сервер - Windows 2003)
Проблема в том, что следующее не работает:
$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
Я могу использовать этот обходной путь, но он не удобен:
$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, но я несколько часов работал в Google и не нашел ответа на свою проблему.