我有一个服务器列表。我想检查一下所有自动服务没有运行。我想将它存储在数组中,然后以网格视图格式显示。 我在下面试过,但它没有用。
foreach ($i in $list) {
$Res = @(Get-WmiObject Win32_Service -ComputerName $i | Where-Object {
$_.StartMode -eq 'Auto' -and $_.State -ne 'Running'
} | Select PSComputerName, Name, DisplayName, State, StartMode)
}
$Res | Out-GridView
答案 0 :(得分:1)
在循环内为$Res
赋值会在每个循环周期中覆盖该值。对于像这样的构造,你需要将变量定义为循环外的数组,然后附加到它:
$Res = @()
foreach ($i in $list) {
$Res += Get-WmiObject ...
}
但是,这必然会表现不佳。将循环中生成的输出分配给变量通常更好:
$Res = foreach ($i in $list) {
Get-WmiObject ...
}