powershell 在继续之前等待命令完成

powershell wait for command to finish before proceeding

在 powershell 中,我正在尝试执行以下操作:

$name = "computername"
#get installed programs
Write-Host "****APPLICATIONS"
gwmi win32_Product -ComputerName $name | select name

#gets services
write-host "****SERVICES"
Get-Service -ComputerName $name | ft

预期输出为

****APPLICATIONS
name
of
app

****SERVICES
running services here
more services here

实际结果是

****APPLICATIONS
****SERVICES
name
of
app
running services here
more services here

我尝试先 start-job 然后 wait-job ,但是 运行 gwmi 作为一项工作似乎没有向控制台输出任何内容并将输出发送到单独的文件达不到目的脚本的其他部分

我也尝试使用 start-sleep,它仍然在继续之前完成两个 write-host 命令

Param(
    $ComputerName = 'AT805061'
)

# Get installed programs
Write-Host "`n****APPLICATIONS`n"
Get-WmiObject win32_Product -ComputerName $ComputerName | Select-Object -ExpandProperty Name | Sort-Object

# Get services
Write-Host "`n****SERVICES`n"
Get-Service -ComputerName $ComputerName | Where-Object -Property Status -eq -Value Running | Select-Object -ExpandProperty Name | Sort-Object

试试这个:

$name = "computername"
Write-Host "`n****APPLICATIONS`n"
gwmi win32_Product -ComputerName $name | % {$_.name}
write-host "`n****SERVICES"
Get-Service -ComputerName $name | ft

如果您希望结果按字母顺序排列:

$name = "computername"
Write-Host "`n****APPLICATIONS`n"
$apps = gwmi win32_Product -ComputerName $name | % {$_.name}
$apps | sort
write-host "`n****SERVICES"
Get-Service -ComputerName $name | ft