私はPowershellでサービスを開始しようとしています。サービスが指定された制限時間内に開始しない場合、開始しようとする試みは中止されなければなりません。タイムアウトを組み込むにはどうすればよいですか?タイムアウトを実装Powershellタイムアウトサービス
答えて
は、バックグラウンドジョブを使用して行うには本当に簡単なことです:
$timeout = [Timespan]"0:0:15"
$start = Get-Date
$j = Start-Job -ScriptBLock { Import-Module MyModule; Invoke-MyCommand}
do {
if ($j.JobState -ne 'Running') { break}
$j | Receive-Job
} while (((Get-Date) - $start) -le $timeout)
コードのこのブロックは、15秒後にタイムアウトしますが、それはあなたが始める必要があります。基本的に: - 時刻を追跡する - ジョブを開始する - それがもう実行されないようにする(失敗している可能性があるので、完了するまで待つだけではない) - 待機中に結果を受け取る - http://www.powershellcommunity.org/Forums/tabid/54/aft:これは
ありがとう、完璧に動作します。ミリ秒を使用する方法はありますか?私は "0:0:0:50"と "0:0:.5"を使ってみると正しく動作しませんでした。 – spassen
はい、「0:0:0.5」のミリ秒を使用できます(あなたは本当に近くにいて、それは面倒なことです)。 [Timespan] :: FromMilliseconds –
v2の '$ j.JobState'ではなく' $ j.State'です。 –
- 1. PowershellのPowershellファイルのフォルダパス
- 2. Powershell - 数値形式では、powershell v2で
- 3. PowershellがPowershellスクリプトを呼び出す
- 4. PowershellからPowershellコンソールウィンドウを開く方法
- 5. Powershell SQLCMD
- 6. PowerShellの
- 7. PowerShellの
- 8. Powershellオンラインインタープリタ?
- 9. PowerShellソートアレイ
- 10. Powershell Bitstransfer
- 11. PowerShellの
- 12. Powershellコンソールコントロール
- 13. Powershell "join"
- 14. PowerShellの -
- 15. PowerShellは
- 16. PowerShell ParameterBindingException
- 17. PowerShell App.Config
- 18. Powershellループ
- 19. Powershell Joins
- 20. PowerShellの:
- 21. PowerShellの
- 22. Powershellフォーマットテーブルエラー
- 23. Powershell and Automation
- 24. PowerShellのADSIプロバイダ
- 25. Powershell偽装
- 26. IEオートメーション(Windows PowerShell)
- 27. Powershellの出力
- 28. ワンライナーPowerShellスクリプト
- 29. Powershell/Logparsingキャストデータ型
- 30. PowerShellホスト/デバッグ
私は、「サービスを開始PowerShellのタイムアウト」をGoogleで検索し、最初のヒットは、あなたのための答えを持っているのに役立ちますが長すぎる
希望を待っていまし/5243/Default.aspx – JNK
投稿されたコードは正常に動作しませんでしたが、当初はそのリンクに遭遇したときの問題でしたが、修正できました。ありがとうございました。 – spassen