GWMI - 通过脚本查明域控制器是物理的还是虚拟的

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

相关内容