どうしても再起動したい。でも今はサーバーを止められない。
夜間であればだれもアクセスしてこないので再起動をしても問題ない。
といったときに夜中に自動的に再起動を実行するにはどうするか。
念のため注意点
管理者の権限が必要になります。
再起動時に動いているアプリケーションがあった場合は強制的に途中で止まってしまうためデータがロストする可能性があります。
操作方法は簡単
Windowsタスクスケジューラでshutdown.exeを仕掛けます。
まずタスクスケジューラを開きます。
タスクの作成を選択します。
まずは識別できる名前を付けます。ここでは「強制再起動」とします。
続いて、セキュリティオプションを「ユーザーがログオンしているかどうかにかかわらず実行する」にチェックします。夜間でユーザーが利用していない時間帯なのでこのオプションを選択しています。
また、タスクの実行時に使うユーザーアカウントが管理者になっていることを確認します。これでOKします。
次にトリガタブにてスケジュールの設定をします。下の画像では今晩1回限り、1:00に設定してみました。デフォルト有効にチェックが入っていますのでスケジュールがセットされます。ちなみにこのチェックをはずすと動きません。
最後に、操作タブ。
操作はデフォルトで「プログラムの開始」になっていますので
設定のプログラム/スクリプトに
c:\windows\system32\shutdown.exe (参照で探しても可)
引数の追加に 「-r -f」
※再起動実施時にバックグラウンドで何かアプリが動いていても強制再起動してしまうオプションが「-f」になります。
操作をOKして
タスクの作成画面でOKすると管理者のパスワードを求められるので管理者のユーザーとパスワードを入力して正しければ準備完了。
準備完了になっていることが確認できました。あとは実行されるのを待つだけです。
夜間を迎えて次の日に再起動されているか確認すればいいですね。
実際は10分後とかで仕掛けて動くのを確認してから実際の時間に設定したほうが確実です。
ちなみに上では細かい設定は入れていませんが他のタブでサーバーの状況を見ての条件をつけたり、shutdown.exeのオプションで、例えば「まもなくシャットダウンします」というメッセージを表示させることができますがここでは書きません。
shutdown.exeのオプション等、詳しい情報はリンクで
実施した環境はWindows Server 2008ですがWindows Server2012 R2でも同じことができます。
計画的に設定すればサーバーの運用も楽になりますが、今回の設定はあくまで緊急措置なので実施する際は自己責任でお願いします;