自宅でのリモートワークは、従来のオフィスワークに代わる働き方として、特にCOVID-19パンデミック以降、世界中で広く普及しています。
例えば、会社のパソコンを自宅のパソコンからリモートデスクトッププログラムを使用して操作する方法で、オフィスワークする方法が考えられます。
会社のパソコンの電源をつけっぱなしにしておくのもいいのですが、電気代がもったいないのでボスに怒られそうです。
会社のパソコンを毎日9時にスリープ状態から解除できればボスには怒られなさそうです。
Windowsには、パソコンに自動的に作業をさせるには「タスクスケジューラ」があります。
「タスクスケジューラ」を使うことで、スリープ状態からパソコンを指定時間に解除することができます。
Windowsキーを押して、「タスクスケジューラ」と入力し、起動します。下図のようなプログラムが起動されます。
左側に表示されている「タスク スケジューラ ライブラリ」を右クリックして表示される「タスクの作成」を選択します。
新しく作成するタスクの名前を入力します。ここでは、「Wake」と入力しています。
スリープを何時に解除するかを設定します。トリガータブで「新規」をクリックします。
スリープを解除する時間を指定します。例えば、毎日9時に解除するように設定します。
パソコンのスリープ状態を解除するためのプログラムを書くために、操作タブで「新規」をクリックします。
スリープを解除するプログラムを書きます。スリープを解除するために、「hello」という文字列をコマンドプロンプトで出力するプログラムを書きます。パソコンは、プログラムを実行するためにスリープ解除するので、どんなプログラムでも構いません。
「プログラム/スクリプト」に「cmd.exe」と入力します。「引数の追加」に「/c echo hello」と入力します。
上記プログラムをスリープ状態でも実行する条件を設定します。
条件タブで「タスクを実行するためにスリープを解除する」にチェックを入れます。
最後に「OK」ボタンを押して、「タスク スケジューラ ライブラリ」に「Wake」タスクが追加されたことを確認します。
コントロール パネル→すべてのコントロール パネル項目→電源オプション→プラン設定の編集で「詳細な電源設定の変更」をクリックして開くダイアログ画面で、「スリープ→スリープ解除タイマの許可」で「バッテリ駆動」「電源に接続」ともに「有効」に変更します。
これで、毎日会社のパソコンは9時にスリープ解除されることになりました。自宅のパソコンから会社のパソコンにリモートデスクトップでログインして作業して、作業が終わったら会社のパソコンを手動でスリープにします。次の日の朝9時には、また、会社のパソコンが使えます。
スリープ解除タスクは動作しているのに、数分経過するとスリープに戻る場合があります。(私はこれで、悩みに悩みました。)
原因は、「システム無人スリープタイムアウト」の設定時間が短いためです。
“システム無人スリープタイムアウト”は、コンピュータが無人の状態(つまりユーザーの操作がない状態)で一定時間経過した後に、システムが自動的にスリープモード(低電力状態)に移行す
るまでの時間を指定する設定です。
無人スリープタイムアウトの設定はデフォルトでは隠されており、レジストリの設定を変更することで表示・変更できるようになります。
レジストリの変更は、コマンドプロンプトで、「powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE」を実行することで安全にできます。
上記実行後、「電源オプション」の詳細設定で、「システム無人スリープ タイムアウト」を例えば「100分」とかに変更すればよいでしょう。