Я попытался создать сценарий для извлечения, но результат оказался не совсем таким, как мне хотелось.
$Servers = Get-ADDomainController -Filter * | Select-Object Name
foreach($server in $servers)
{
$compsystem = gwmi -q "Select * from win32_computersystem" | Select Model
write-output $Server is $compsystem"
}
Результат выглядит примерно так:
@ {Name = ServerName} - это @ {Model = Proliant DL360 G6}.
Имя сервера другое, но модель та же, поэтому я думаю, что он находится в непрерывном цикле после первых серверов.
Есть идеи?
Спасибо,
Вы никогда не используете переменную $server
, поэтому весь ваш вывод поступает с локальной машины, на которой вы запускаете скрипт. Чтобы запустить команду на реальных серверах, вы можете использовать Invoke-Command
:
$servers |Foreach-Object {
$compsystem = Invoke-Command -ComputerName $_.name -ScriptBlock { gwmi -q "Select * from win32_computersystem" }
Write-Host ("{0} is {1}" -f $_.Name,$compsystem.Model)
}