我尝试创建一个用于提取的脚本,但输出并不完全符合我的期望。
$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)
}