業務効率化

毎日同じ時間でWindows10のスリープを自動設定・自動解除するやり方とは…?

トビタカ

本記事ではWindows10・11のパソコンのスリープを自動でON・OFFする方法をご紹介しています。

他のサイトを参考にしてもうまくいかなかったので、改良を加えた方法をご紹介しています。

先日、会社の節電対応として毎日のパソコンのスリープが必須になりました。

でも、パソコンをスリープにすると、リモートデスクトップ接続ができなくなってしまうんですよね。

とび助

在宅勤務なので困っちゃいますね…

トビタカ

実は、平日の同じ時間に自動でスリープを設定・解除する方法があるんです!

必須設定:パソコンのスリープ設定を変更しよう

自動でスリープを解除するためには、パソコンのスリープ設定を変更する必要があります。

なので、画像の①のように検索で『電源プランの編集』を検索して、②クリックして実行してください。

『プラン設定の編集』の画面が表示されると思いますので、③『詳細な電源設定の変更』をクリックしましょう。

とび助

バッテリ駆動の項目が無いんですけど…

トビタカ

それはノートパソコンだけに表示される項目なので、デスクトップであれば表示されなくてもOKです!

詳細設定でスリープに関する設定を一括で変更できるので、この画面でスリープ設定を変更する必要はありません。

電源オプションの詳細設定が表示されたら、④『スリープ』の『+』マークをクリックして、設定項目を展開させましょう。

そして、⑤の設定を次のように変更してから、⑥『OK』を押してください。

スリープの設定
  • 次の時間が経過後スリープする :なし
  • ハイブリッドスリープを許可する:オフ
  • 次の時間が経過後休止状態にする:なし
  • スリープ解除タイマーの許可  :有効
とび助

スリープや休止状態はOFFでいいんですか…?

トビタカ

はい!そうしないとスリープを自動解除したのにもう一度スリープになってしまいます。

とび助

たしかに、それだと意味がないですもんね!

ハードディスクを使用している場合は、追加設定をした方が安心です。

その場合は、もう一度『電源オプションの詳細設定』を開きましょう。

そして、次の画像のように『ハードディスクの電源を切る』を⑦『なし』に変更し、⑧『OK』をクリックしておきましょう。

SSDを使用しているパソコンの場合、ハイブリットスリープや休止状態は使わないほうが良いです。

メモリ内の数GBのデータをSSDに何回も書き込むことになるので、SSDの寿命がかなり短くなってしまいます。

共通設定:タスクの作り方の手順

では、パソコンの設定ができたのでタスクスケジューラでタスクを作成していきます。

本記事で作成するタスクの例は、平日の8時にスリープを解除する『Wake』平日の20時に自動でスリープにする『Sleep』というタスクになります。

まずは、Wake・Sleepの両タスクで共通する設定をご説明していきますね。

画像の①のように検索で『タスク スケジューラ』を検索して、②クリックして実行してください。

タスクスケジューラが開いたら、右側にある③『タスクの作成』を選択しましょう。

全般のタブが選択された状態で、タスクの作成画面が表示されたと思います。

名前に④『Wake』と入力し、⑤『ユーザーまたはグループの変更』をクリックしてください。

トビタカ

説明の欄は記入してもしなくてもOKです。

次ような画面が表示されると思います。

選択するオブジェクト名の部分に⑥『SYSTEM』と入力して⑦『OK』をクリックしてください。

とび助

SYSTEMにすると良いことがあるんですか…?

トビタカ

管理者権限を持った状態で実行できるので、パスワード入力がいらなくなるんです。

次の画面に移動したら、⑧にチェックを入れて⑨のOSの種類を選び、⑩『トリガー』のタブを選択しておきます。

トビタカ

ここまでは共通設定なので、次はWakeの詳細設定をしていきます!

とび助

了解っす!

毎日同じ時間で自動でスリープを解除するタスクの詳細設定

では、平日の8時にスリープを自動的に解除するタスクの設定をしていきます。

こちらの画面が表示されていると思いますので、①『新規(N)』をクリックしてください。

②を『8:00:00』に変更してから③『毎週』を選択し、④『月~金』にチェックを入れて⑤『OK』をクリックします。

先ほどのタスクの作成画面に戻りますので、⑥『操作』のタブを選択して⑦『新規』をクリックしてください。

こちらの画面では、スリープを解除するプログラムを入力していきます。

⑧に『cmd.exe』を、⑨に『/c echo hello』を入力して⑩『OK』をクリックしてください。

とび助

どんなプログラムなんですか…?

トビタカ

コマンドプロンプト(黒い画面)を起動して『hello』と表示するプログラムです。

一瞬だけhelloが表示されるので、何も起きていないように感じることがあります。

タスクの作成画面に戻りますので、⑪『条件』のタブを選択して、⑫『タスクを実行するためにスリープを解除する』にチェックを入れてから⑬『OK』を選択します。

トビタカ

これでスリープ解除の設定はOKです!

とび助

意外と簡単でしたね!

毎日同じ時間に自動でスリープするタスクの詳細設定

続いては平日の20時に自動的にスリープ状態にするタスクを作成していきます。

やり方はスリープ解除タスクの設定とほぼ変わりません。

なので、まずは共通設定手順③~⑨を行い、タスク作成のトリガー設定画面を開いてください。

トビタカ

タスクの名前はSleepにしておいてくださいね!

共通設定が終わったら、トリガーのタブを開いていると思いますので、①『新規(N)』をクリックしてください。

②を『20:00:00』に変更してから③『毎週』を選択し、④『月~金』にチェックを入れて⑤『OK』をクリックします。

そして、⑥『操作』タブを選択して、⑦『新規』をクリックします。

そしたら、次の画像のように⑧に『powershell』、⑨に画像の下のコードをコピペして⑩『OK』をクリックしてください。

-command "Add-Type -AssemblyName System.Windows.Forms;[System.Windows.Forms.Application]::SetSuspendState(0,$true,$false)"
とび助

こちらはどんなプログラムなんですか…?

トビタカ

パソコンの電源状態を変更するプログラムになっています。

上記プログラムはWindowsに最初から含まれている処理を実行するプログラムです。

具体的には『System.Windows.Forms.dll』というファイルに書かれている『SetSuspendState』というメソッドを実行します。

ちなみに、()の中の3つの引数は次の意味を持っています。

  1. 休止モード(0でスリープ・1で休止)
  2. 強制的に休止にするか
  3. 外部による起床を許可するか
トビタカ

つまり、タスクスケジューラによる起床を許可したまま強制的にスリープすることができるようになります。

『rundll32.exe』を使用した自動スリープ方法を紹介しているサイトがありますが、あれは間違いです。

詳細説明は省略しますが、引数を指定しても『タスクスケジューラによる起床ができない休止モード』になることが分かっています。

プログラムを設定することができたら画面が戻りますので、『OK』をクリックしてタスクの作成を完了してください。

とび助

あれ?条件の設定はしなくていいんですか…?

トビタカ

はい!スリープ状態を解除するタスク以外は追加の設定は不要ですよ!

上手く起動しない時は…

以上で自動スリープと自動スリープ解除の設定は完了です。

ですが、ユーザーがログインしていない再びスリープになってしまうことがあります。

その場合は、次の処理を行って設定を変更してください。

まずは、検索窓に①『cmd』と入力して②『コマンド プロンプト』を起動します。

次のコードを③にコピペしてEnterを押します。

powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE
トビタカ

コマンドプロンプトは閉じてしまってOKです。

そのあとはもう一度、電源の詳細設定を開きます。

こちらの画像のように『システム無人スリープタイムアウト』が表示されるようになっているので、④を『0』に変更して⑤『OK』をクリックしてください。

そして、もう一度スリープの解除のタスクを実行してみましょう。

トビタカ

これでログインしていない時にスリープにならないようになりましたよ!

とび助

これでできました!

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA