![如何在 PowerShell 中的 While 循环内传递命令的结果?](https://linux22.com/image/1530605/%E5%A6%82%E4%BD%95%E5%9C%A8%20PowerShell%20%E4%B8%AD%E7%9A%84%20While%20%E5%BE%AA%E7%8E%AF%E5%86%85%E4%BC%A0%E9%80%92%E5%91%BD%E4%BB%A4%E7%9A%84%E7%BB%93%E6%9E%9C%EF%BC%9F.png)
我正在编写一个脚本,它将等待在几次 Windows Server 重新启动后完成的任务。有一个 PowerShell 命令可以使用名为 Status 的字段来检查操作的状态。完成后,Status 的值为“Finished”。为什么这个代码片段不起作用,它不是不执行 while 循环,而是执行代码:
while ( (Get-WssConfigurationStatus | select Status) -ne "Finished" ) {
Write-Host "Waiting for WSS Configuration to complete"
sleep -seconds 60
}
如果您感兴趣的话,这是更广泛的 Packer 脚本的一部分,用于在 2012R2 上安装 Windows Server Essentials 角色。
提前致谢,Al
答案1
该测试脚本在这里起作用:
while ( (Get-Service audiosrv).Status -ne "Finished" ) {
Write-Host (get-date) "Waiting for WSS Configuration to complete"
sleep -seconds 60
}
因此将第一行改为:
while ( (Get-WssConfigurationStatus).Status -ne "Finished" ) {