2016-07-20 6 views
4

誰かがこれで私を助けてくれるのだろうかと思っていました。私は、サービスを停止するには、この文を持っていますが、私はスタート睡眠は、私が後にループを停止するようにカウンタを追加する5.PowerShell - whileループにカウンタを追加する

while($module | Get-Service | ? {$_.Status -eq "Running" -or $_.Status -eq "Stopping"}) 
{ 
    set-service $module -ComputerName $targetserver -StartupType Disabled -Status Stopped -PassThru 
     ; 
    Start-Sleep -Seconds 5 #keep repeating stop services every 5 seconds until all services have stopped 
} 

を-s追加しての回でサービスが時々の依存関係のために停止しません。サービスがまだ実行中の場合は、write-hostになります。n "Service not stopped."

何か助けていただければ幸いです。皆さんありがとう。

+1

時間.com/questions/3513650/timing-a-commands-in-powershell) – gravity

答えて

4

60/5 = 12ループ。

while (test -and ($counter++ -lt 12)) { 
    #stop-service 
    #start-sleep 
} 

しかし、その長いテストで、それはより読みやすいかもしれないとして:// stackoverflowの:あなたの[ストップウォッチ(または他の類似の組み込み機能)](HTTPを引き出す

do 
{ 
    set-service $module -ComputerName $targetserver -StartupType Disabled -Status Stopped -PassThru 
    Start-Sleep -Seconds 5 

    $status = ($module | Get-Service).Status 
    $loopCounter++ 

} while ($status -in ('Running', 'Stopping') -and ($loopCounter -lt 12)) 
+0

これは私が必要としていたものです。どうもありがとうございます! – Mike

関連する問題