резюме Проблемы:WinRM - Сервер RPC Unavailable - может телнет и запущены службы
Я пытаюсь проверить WMF4 на все сервера в определенном OU в нашем домене. Тем не менее, я получаю ошибки RPC для большинства серверов, несмотря на наличие объектов групповой политики, позволяющих WinRM работать. Я запускаю код ниже с контроллера домена.
Вещи я проверил или пытавшиеся:
- Telnet от постоянного тока до целевого сервера на порт 135 и 5985. Работает отлично, поэтому брандмауэр (ы) не должно быть проблемой.
- Проверено, что следующие службы запущены на целевом сервере:
- WinRM
- Remote Registry
- Remote Procedure Call
- Набор WinRM доверенных хостов на целевом сервере, чтобы "*" (точно так же, как тест)
Одна вещь, представляющая интерес - Существует один сервер, на котором я не получаю ошибку RPC, и она единственная в OU, которая находится в той же подсети 24, что и DC. Кажется, это любопытное совпадение.
Что я пропустил?
Спасибо.
Вот мой Powershell код:
Import-Module ActiveDirectory
$searchOU = "<removed>"
$2008servers=(Get-ADComputer -Filter {OperatingSystemVersion -like "6.0*" -or OperatingSystemVersion -like "6.1*"} -SearchBase $searchOU)
$2012servers=(Get-ADComputer -Filter {OperatingSystemVersion -like "6.2*"} -SearchBase $searchOU)
ForEach ($2008server in $2008servers) {
$server = $2008server.Name
try {
if (Get-HotFix -id KB2819745 -ComputerName $server -ErrorAction Stop) {
Add-Content "WMF4 is present on $server" -Path "C:\Users\`$peterb\Desktop\WMF4-Present.log"
}
}
catch {
if ($Error[0].Exception.Message.Contains("The RPC server is unavailable")) {
$ErrorMessage = $_.Exception.Message
Add-Content "$ErrorMessage on $server" -Path "C:\Users\`$peterb\Desktop\RPCUnavailable.log"
} else {
if ($Error[0].Exception.Message.Contains("Cannot find the requested hotfix")) {
Add-Content "WMF4 is missing on $server" -Path "C:\Users\`$peterb\Desktop\Missing-WMF4.log"
} else {
Add-Content "$ErrorMessage on $server" -Path "C:\Users\`$peterb\Desktop\OtherErrors.log"
}
}
}
}
ForEach ($2012server in $2012servers) {
$server = $2012server.Name
try {
if (Get-HotFix -id KB2799888 -ComputerName $server -ErrorAction Stop) {
Add-Content "WMF4 is present on $server" -Path "C:\Users\`$peterb\Desktop\WMF4-Present.log"
}
}
catch{
if ($Error[0].Exception.Message.Contains("The RPC server is unavailable")) {
$ErrorMessage = $_.Exception.Message
Add-Content "$ErrorMessage on $server" -Path "C:\Users\`$peterb\Desktop\RPCUnavailable.log"
} else {
Add-Content "WMF4 is missing on $server" -Path "C:\Users\`$peterb\Desktop\Missing-WMF4.log"
}
}
}
Если бы мой сетевой администратор наблюдал за брандмауэром, когда я делал простую команду Get-WmiObject, и похоже, что высокий диапазон портов, используемый RPC, блокируется брандмауэром. Я думаю, что я запутался в различиях портов между WinRM и портами, используемыми командами powershell. Полагаю, мне придется делать больше исследований. –