我有以下代码,我希望我的小程序显示值一,停止服务,然后显示值二。
我已经检查了此处的文档,它确认下一个命令应在执行 IF 语句的真/假之后执行。
https://www.pdq.com/blog/how-to-use-if-statements-in-powershell/
$AccServiceName = 'AccountLoaderService'
$AccService = Get-service $AccServiceName
if ($AccService.Status -eq 'Running')
{
Write-Host '1'
Stop-Service $AccServiceName
}
Start-Sleep -Seconds 20
if ($AccService.Status -eq 'Stopped')
{
Write-Host '2'
}
实际情况是,它显示数字 1,但不显示数字 2。
该服务肯定会在指定的 20 秒内停止,如果我随后立即再次运行该命令,不包含 sleep 语句,它将返回数字 2 的值。
希望这是有意义的,任何帮助都将不胜感激。
通过在 Start-Sleep 命令后添加 $AccService = Get-Service $AccServiceName,您可以确保在再次检查之前更新服务状态。这应该允许您的脚本按预期显示“2”。