想要将输出存储在数组中
Want to store output in an array
我有一个服务器列表。我想检查一下所有自动服务都不是 运行。我想将它存储在数组中,然后以网格视图格式显示。
我在下面尝试过,但没有用。
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
在循环内为 $Res
赋值会在每个循环周期覆盖该值。对于这样的构造,您需要将变量定义为循环外的数组,然后附加到它:
$Res = @()
foreach ($i in $list) {
$Res += Get-WmiObject ...
}
但是,这必然会表现不佳。通常最好将循环中生成的输出分配给变量:
$Res = foreach ($i in $list) {
Get-WmiObject ...
}
我有一个服务器列表。我想检查一下所有自动服务都不是 运行。我想将它存储在数组中,然后以网格视图格式显示。 我在下面尝试过,但没有用。
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
在循环内为 $Res
赋值会在每个循环周期覆盖该值。对于这样的构造,您需要将变量定义为循环外的数组,然后附加到它:
$Res = @()
foreach ($i in $list) {
$Res += Get-WmiObject ...
}
但是,这必然会表现不佳。通常最好将循环中生成的输出分配给变量:
$Res = foreach ($i in $list) {
Get-WmiObject ...
}