GWMI - Узнайте, являются ли контроллеры домена физическими или виртуальными с помощью сценария

Я пытался создать сценарий для извлечения, но вывод не совсем я хотел.

$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}

Имя сервера отличается, но Модель та же самая, поэтому я думаю, что после первых серверов она находится в непрерывном цикле.

Есть идеи?

Спасибо,

1 ответ

Вы никогда не используете переменную $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)
}
Другие вопросы по тегам