(新)タイトルいつ決めるのさ

何かの参考にして頂ければ幸いです。

タスクスケジューラを使って設定した時間になると強制的に PC を休止状態に移行させる方法(Windows10)

以前にも書いていた記事なのですが、Windows の仕様変更でいつの間にか少し方法が変わっているようなので、書き直したものをメモとして残しておきます。


メインPC にピクセラ社の PIX-DT260 という TVチューナーカードを取り付けているのですが、どうもこのカードのせいで番組の録画が終わっても PC が休止状態に移行せず、一晩中 PC が点きっぱなしという事が起きるようです(うちの環境だけなのかも知れませんが)。

そこで、Windows 10 に標準装備のタスクスケジューラを使って、指定した時間になったら強制的に PC を休止状態に移行させるように設定しておくことにしました。ただし、この方法を使うと、例えば放映時間がずれ込んで録画途中だったとしてもブッツリいってしまう可能性もあるのでその点にだけは注意と覚悟(?)が必要です。

方法は以下の通り。

  1. Windows のスタートボタンをクリックして「Windows 管理ツール」にある「タスクスケジューラ」を開き、右側にある「基本タスクの作成」をクリック。

    タスクスケジューラ

    基本タスク作成
  2. 「基本タスクの作成ウィザード」が開くので、適当なタスクの名前を設定して「次へ」をクリック。

    分かりやすいように動作の内容の簡単な説明を書いておいても良いでしょう。
  3. タスクの「トリガー」の設定を行います。タスクを実行するタイミングや頻度と開始時刻を設定して下さい。「間隔」を ” 1日 ” に設定しておけば毎日同じ時間にタスクが実行されるようになります。

    トリガー設定

  4. 「操作」の設定ではタスクが起動した際にどのような動作を行うのかを指定します。

    ここでは「プログラムの開始」を選択し、

    「プログラム/スクリプト」に、

    C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

    「引数の追加」に、

    Add-Type -Assembly System.Windows.Forms;[System.Windows.Forms.Application]::SetSuspendState('Suspend', $false, $false);

    と記述します。

    操作設定

    この「引数」ですが、最期の 3つのパラメーターの意味は以下の様になっています。必要に応じて変更して使って下さい。

     ・ PowerState ー 移行後の電源の動作モードを示す
        Suspend :サスペンド状態に移行。スタンバイ中の停電には注意
        Hibernate :休止状態に移行。サスペンドよりは復帰までの時間が掛かる
     ・ force ー 強制的に中断モードにするかどうかの設定
        true    :強制的に中断モードに移行
        false   :Windows からアプリケーションに中断要求が送られる
     ・ disableWakeEvent ー wakeイベントによる電源ステータス復帰の許可/不許可
        true    :wakeイベントによる電源ステータス復元を認めない
        false   :wakeイベントによって電源ステータスがアクティブになる

    (参考:Application.SetSuspendState(PowerState, Boolean, Boolean) メソッド)
    ということで最終的に次のように変更しました。

    Add-Type -Assembly System.Windows.Forms;[System.Windows.Forms.Application]::SetSuspendState('Hibernate', $false, $true);

    スタンバイ時にハイバネート(メモリの内容をディスクに保存してスタンバイ)し、wakeイベントからの復帰を阻止しています。これだとシステムスタンバイ状態からのタイマー録画などは行えませんが、番組表を取得しようとして復帰したりもしてしまうようなのでここは妥協しました。そうした場合は nasne に働いてもらうことにします。

    確認画面
  5. 「要約」として設定したタスクの確認画面が表示されるので、内容に問題が無ければ「完了」をクリックします。「タスクスケジューラ」の画面に戻って「タスクスケジュールライブラリ」を確認し、先ほど設定したタスクが登録されていればOKです。時間などを変更したい場合は、タスクを選択した状態で右側の「プロパティ」をクリックすれば編集画面が開きます。
    尚、「実行」をクリックすると、選択しているタスクがスケジュール設定に関係なくすぐにその場で実行されます。きちんと動作するか確認しておくのも良いでしょう。

今のところ想定通りの動作を行ってくれているようです。もしタスクが作動してすぐにまた Windows が起きてしまうようでしたら、マウスなどのデバイスの電源管理が悪さをしている可能性があります。

特に最近のマウスは多機能になっているので、デバイスマネージャーの「マウス」の項目で「このデバイスで、コンピューターのスタンバイ状態を解除できるようにする」のチェックを外しただけでは駄目で、「キーボード」項目の「HIDキーボードデバイス」、「ヒューマンインターフェイスデバイス」項目の「HID準拠コンシューマー制御デバイス」の方でもチェックを外しておかないとならないケースがあるようです。もし嵌まっている方が居られましたら試してみて下さい。どれがマウスのものか分からない場合は、マウス以外の USB機器を全て一旦取り外してみればわかります。