Назад | Перейти на главную страницу

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

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

Есть идеи?

Спасибо,

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