Я пытаюсь использовать WMI, чтобы получить имя хоста, IP и MAC-адрес со всех компьютеров в домене и сохранить их в текстовом файле. Когда я запускаю мой код, я получаю следующее сообщение об ошибке:Powershell - читать список и выводить содержимое gwmi для разделения файла
gwmi : The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)>
At line:10 char:13
+ $base = gwmi win32_networkadapterconfiguration -computername $comp | where { ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Get-WmiObject], COMException
+ FullyQualifiedErrorId : GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
Если я бегу Gwmi против отдельной машины, она отлично работает. Я могу получить информацию мне нужно
Этот скрипт завершается с ошибкой выше:
$computers = Get-Content -path F:\scripts\domain_computers.txt
foreach ($comp in $computers) {
$base = gwmi win32_networkadapterconfiguration -computername $comp | where {$_.dnsdomain -eq "mydomain.com"}
$machine = $base.DNSHostName
$mac = $base.MACAddress
$ip = $base.IPAddress
Write-Output "<$comp>`n`tname = $machine'n</$comp>" | Out-File F:\scripts\comp_list_test.txt -Append
}
write-ouput
только для тестирования. Я хотел бы напечатать все переменные после работы. Что мне не хватает?
EDIT:
Текстовый файл domain_computers.txt имеет каждый имя_компьютера на отдельной строке. Нет пробелов или символов конца. Я также понял, что скрипт работает правильно. Он не работал на машинах, у которых не было включен WinRM. Когда я тестировал отдельные компьютеры, мне просто приходилось тестировать те, на которых был включен WinRM.
У меня теперь есть еще одна проблема с этим скриптом, но опубликуйте его в новом вопросе, поскольку он не связан с этим.
Это, вероятно, лучший вопрос для http://serverfault.com – Mgetz
Есть ли способ перенести этот вопрос или я должен просто задать новый вопрос? – mipnix
Я укажу его для миграции – Mgetz