PowerShellでシステムを特定の時刻に再起動する方法

時刻指定再起動は一回commandを通すだけの作業ではありません。再起動が必要な根拠と復帰確認の期限を決め、単発タスクの次回実行時刻を検証することを到達点にし、PowerShellでシステムを特定の時刻に再起動する方法の例を検証用pathへ閉じ込めます。

時刻指定再起動の対象境界は「単体Windows端末の計画再起動。ドメインコントローラーや可用性構成は役割固有の手順を使う」です。時刻指定再起動で範囲外の候補、実在しないpath、想定外の実行identityが一つでもあれば開始せず、Get-CimInstanceの取得段階へ戻ります。

目次

時刻指定再起動|再起動が必要な根拠と復帰確認の期限を決め、単発タスクの次回実行時刻…|accept

時刻指定再起動ではGet-CimInstanceのbaseline、Get-ScheduledTaskInfoの再取得、Unregister-ScheduledTaskの復旧材料を同じ対象へ結べた時だけ完了です。時刻指定再起動の表示上の成功と利用側の結果が違う場合は後者を優先し、承認記録を閉じません。

確認対象PowerShellによる時刻指定再起動
適用範囲単体Windows端末の計画再起動。ドメインコントローラーや可用性構成は役割固有の手順を使う
成功条件再起動が必要な根拠と復帰確認の期限を決め、単発タスクの次回実行時刻を検証する
中止条件再起動は稼働中サービスと対話ユーザーを切断するため、通知と停止順序を省略しない
復旧基準保存した変更前状態へ戻し、同じ検証を再実行できること

時刻指定再起動の対象boundary|単体Windows端末の計画再起動。ドメインコントローラーや可用性構…

時刻指定再起動を開始する前の停止条件は「再起動は稼働中サービスと対話ユーザーを切断するため、通知と停止順序を省略しない」です。時刻指定再起動の対象数、権限、同時更新の有無を読み合わせ、この兆候を除外できない場合は変更commandを実行しません。

  • 対象boundary:単体Windows端末の計画再起動。ドメインコントローラーや可用性構成は役割固有の手順を使う
  • 変更前証拠:Get-CimInstanceのstdout・stderr・終了状態と取得時刻
  • 承認前の禁止条件:再起動は稼働中サービスと対話ユーザーを切断するため、通知と停止順序を省略しない
  • 復旧input:Unregister-ScheduledTaskが参照する保存物を実在確認する

時刻指定再起動 × Get-CimInstance|開始時点を保存する

時刻指定再起動ではGet-CimInstanceを変更前に実行し、対象名、内部識別子、件数、主要属性を作業記録へ保存します。時刻指定再起動の空stdoutを正常値へ変換せず、権限不足と対象なしを別statusにします。

Get-CimInstance Win32_OperatingSystem | Select-Object CSName,LastBootUpTime,LocalDateTime
Get-Service | Where-Object Status -eq 'Running' | Measure-Object
query user

時刻指定再起動のこの出力は、後続のNew-ScheduledTaskActionへ渡す入力の存在確認です。時刻指定再起動の取得中に対象が変わったrunは破棄し、同じidentityについてbaselineを採り直します。

時刻指定再起動の判定field|LastBootUpTime、LastTaskResult、NextRun…

LastBootUpTimePowerShellによる時刻指定再起動では予定後に値が更新されたかを確認し、単に疎通が戻っただけで成功としない
LastTaskResultPowerShellによる時刻指定再起動ではスケジューラー側の終了値。更新適用やアプリ起動の成功は別検証する
NextRunTimePowerShellによる時刻指定再起動では翌日3時のつもりが当日過去時刻になっていないかをレビューする

時刻指定再起動で比較するfieldは「LastBootUpTime、LastTaskResult、NextRunTime」です。時刻指定再起動を単独の表示名や時刻だけで同一と決めず、対象identityと適用範囲を一行のrecordへ束ねます。

時刻指定再起動の限定操作|New-ScheduledTaskActionと単体Windows端末の計画再起動。ドメインコ…

単発restart taskは同名taskを上書きせず、WhatIf、対話ユーザー、主要service、復帰確認期限をレビューした後にだけ実登録します。WhatIfの成功表示は再起動予約の成立を意味しません。

$taskName = 'ITtrip-ApprovedRestart'
if (Get-ScheduledTask -TaskName $taskName -ErrorAction SilentlyContinue) {
    throw "同名taskが既に存在します: $taskName"
}
$action = New-ScheduledTaskAction -Execute 'shutdown.exe' -Argument '/r /t 120 /c "Approved restart"'
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).Date.AddDays(1).AddHours(3)
Register-ScheduledTask -TaskName $taskName -Action $action -Trigger $trigger -Description '承認済み再起動' -WhatIf
$approval = Read-Host '対象端末・利用者通知・NextRunTimeを確認後、REGISTER-RESTART-ONCEを入力'
if ($approval -cne 'REGISTER-RESTART-ONCE') { throw 'task登録は承認されませんでした' }
Register-ScheduledTask -TaskName $taskName -Action $action -Trigger $trigger -Description '承認済み再起動' -Confirm:$true -ErrorAction Stop

時刻指定再起動へNew-ScheduledTaskActionを実行した直後は別対象へ連続適用せず、処理件数とwarningを保存します。時刻指定再起動で部分成功があれば成功分と未処理分を分け、Get-ScheduledTaskInfoの確認を先に行います。

時刻指定再起動のacceptance|Get-ScheduledTaskInfoと再起動が必要な根拠と復帰確認の期限を決め、単発タスクの…

時刻指定再起動ではGet-ScheduledTaskInfoを使い、変更commandの変数ではなく保存後の現状を独立して読み直します。時刻指定再起動の主要値、件数、利用側の代表操作がすべて一致した場合だけacceptします。

Get-ScheduledTaskInfo -TaskName 'ITtrip-ApprovedRestart' | Format-List NextRunTime,LastRunTime,LastTaskResult
Get-CimInstance Win32_OperatingSystem | Select-Object LastBootUpTime
  • 主要判定:再起動が必要な根拠と復帰確認の期限を決め、単発タスクの次回実行時刻を検証する
  • error判定:stderrまたはaccess deniedを空結果へ丸めない
  • 利用側確認:起動後のBitLocker回復、更新失敗、ネットワーク未復帰に備えコンソール経路を確保するという条件を除外する
  • recovery確認:Unregister-ScheduledTaskの入力と対象identityがbaselineに一致する

時刻指定再起動のstop条件|再起動は稼働中サービスと対話ユーザーを切断するため、通知と停止順序を省略しない

時刻指定再起動|停止:再起動は稼働中サービスと対話ユーザーを切断するため、通知と停止順序を省略しない

時刻指定再起動で停止する兆候は「再起動は稼働中サービスと対話ユーザーを切断するため、通知と停止順序を省略しない」です。時刻指定再起動を再実行回数で解決せず、対象選択と前提条件を修正して新しいbaselineから再開します。

時刻指定再起動|保留:/tの待機時間を短くしすぎると利用者が保存できない

時刻指定再起動で「/tの待機時間を短くしすぎると利用者が保存できない」を検出した結果は保留にします。時刻指定再起動の現在状態と残存物を保存し、影響範囲を特定してから復旧か再試行かを選びます。

時刻指定再起動|再設計:起動後のBitLocker回復、更新失敗、ネットワーク未復帰に備えコンソール経路を確保する

時刻指定再起動の設計を戻す条件は「起動後のBitLocker回復、更新失敗、ネットワーク未復帰に備えコンソール経路を確保する」です。時刻指定再起動とは別層の権限・format・運用要件が原因なら、optionを足さず担当workflowへ引き渡します。

時刻指定再起動のrecovery|Unregister-ScheduledTaskで保存状態へ戻す|時刻指定再起動

時刻指定再起動ではUnregister-ScheduledTaskが参照するbackup、旧値、または候補fileを変更前に作り、hash・権限・対象identityを確認します。時刻指定再起動の復旧開始時にも現在状態を追加保存し、上書き対象を一件へ絞ります。

$taskName = 'ITtrip-ApprovedRestart'
Get-ScheduledTask -TaskName $taskName -ErrorAction Stop | Select-Object TaskName,State
Unregister-ScheduledTask -TaskName $taskName -WhatIf
$approval = Read-Host '未実行taskの取消対象を確認後、CANCEL-RESTART-TASKを入力'
if ($approval -cne 'CANCEL-RESTART-TASK') { throw 'task取消は承認されませんでした' }
Unregister-ScheduledTask -TaskName $taskName -Confirm:$true -ErrorAction Stop
if (Get-ScheduledTask -TaskName $taskName -ErrorAction SilentlyContinue) { throw 'taskが残っています' }

時刻指定再起動でUnregister-ScheduledTaskを終えた後は、baselineとの一致だけでなく利用側の代表操作も再試験します。時刻指定再起動の復旧中に新しいerrorが出たらcommandを止め、残った状態を保全してownerへ渡します。

時刻指定再起動の運用例は「更新プログラム適用後の午前3時再起動で、起動時刻、主要サービス、監視エージェント、業務URLの四点が期限内に戻るまで完了扱いにしない運用」です。時刻指定再起動の対象固定、承認番号、変更前後の比較、復旧可能性を一つのrun recordへまとめます。

時刻指定再起動をautomationへ載せる場合は、重複実行を防ぐlock、開始終了時刻、処理件数、Get-ScheduledTaskInfoの判定を保存します。時刻指定再起動のlogから秘密値を除外し、失敗runを前回値で上書きしません。

時刻指定再起動の判断FAQ|再起動とシャットダウン記事の違いは何ですか

時刻指定再起動|再起動とシャットダウン記事の違いは何ですか

結論:再起動では復帰後のブート時刻とサービス健全性が主な成功条件になり、停止だけでは完了しない

時刻指定再起動|Restart-Computerを予約できますか

選択基準:コマンド自体に日時予約はないため、タスクスケジューラなど信頼できる実行基盤へ登録する

時刻指定再起動|再起動が始まった後に止められますか

運用上の答え:待機時間内ならshutdown /aを検討できるが、更新処理の段階によっては中断せず復帰確認を優先する

時刻指定再起動の採用条件は、上記の独立確認が通り、停止条件が一件も残らず、Unregister-ScheduledTaskの復旧材料が読めることです。時刻指定再起動で対象identityが途中変化したrunは破棄し、保存済みbaselineから再収集します。

再起動予約と復帰確認を分ける

予約完了はtaskのNextRunTimeが承認時刻に一致すること、再起動完了はLastBootUpTimeが更新され主要serviceと業務URLが期限内に復帰することです。この二つを同じstatusにしません。

未実行taskは実取消して再取得します。再起動開始後はtask削除だけでは止められないため、コンソール経路とshutdown /aの適用可否を別に判断します。

公式情報・参考資料

時刻指定再起動の構文と制約は、本文末の一次資料と対象環境のlocal helpで照合します。時刻指定再起動の記事確認日は2026年7月17日で、版が異なる場合はoption、default、終了statusの差を先に確認してください。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次