如何在 PowerShell 中的 While 循环内传递命令的结果?

如何在 PowerShell 中的 While 循环内传递命令的结果?

我正在编写一个脚本,它将等待在几次 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" ) {

相关内容