IMG_1363
テレワークもすっかり日本に定着してきたように思います。ネットワーク環境の整った昨今ではリモートデスクトップを使って家から会社のPCで仕事するのが便利で、このコラムでも何度か話題として取り上げました。

ところがこのリモートデスクトップでの作業には、ちょっとした弱点があります。それは

会社のPCが常に電源が入った状態でないとリモートデスクトップの接続ができない

というものです。
1日の仕事が終わるとついPCをシャットダウンしたくなりますが、できません。次の日の朝リモートデスクトップの接続ができなくなってしまいます。スリープでさえだめで、スリープしない設定にし忘れたがために電話をかけて会社の人にPCを起こしてしてもらう。。。 というのは、テレワーク "あるある" のひとつですね。

遠隔でPCのスリープが解除できたらいいのに。。。 できないものでしょうか?

先に結論を述べますと、 「ないこともない」 「かなり面倒」 「出来ない場合もわりとある」 という、歯切れの悪いものとなります。

というわけで、それでも遠隔スリープ解除をやってみたい! という方がいらっしゃいましたら、もしかしたら以下の記事がちょっとお役に立つかもしれません。。。 (歯切れが悪くてすみません



 
■最近のPCは何もしてないときはとても省電力です

 最近のPCは何も作業していない時はできるだけ電気を消費しないようによく作られています。小型省スペースなPCであれば20Wとか、それ以下のものもあったりします。とはいえ台数があると馬鹿にできない大きさになります。またハイパフォーマンスなPCは未使用時の消費電力も相応に大きくなります。まずはワットチェッカーを使って未使用時のPCの実際の電力を測り、時間と台数をかけて夜に消費される電気料金を概算してみましょう。面倒なことまでしてスリープさせなくてもいいか、となるかもしれません。



 
■PCのスリープを遠隔で解除する技術

PCのスリープを遠隔で解除する仕組みは実は結構昔からありまして、以下の2つが代表的です。

・ Wake on Lan
・ Intel vPro

 後者はインテルの企業向けのPC一元管理システムで遠隔起動だけでなく様々なことができるのですが、PCがIntel vPro対応でなければならずさらにvProの管理PCが必要だったりで、ただPCを起こしたいだけの時には敷居が高いです。
 前者はさらに昔からある "寝たPCを起こす" ための仕組みで、今のほとんどのPCが対応しています。なんだちゃんと仕組みがあるじゃないか、となるのですが、便利そうなのに流行ってないというのは、それなりにまあ、あまり便利ではないのです。

 
■Wake on Lan残念ポイント

Wake on Lanは、起こす側がマジックパケットというパケットをネットワークに流すと、該当PCのネットワークアダプタがそれを検知してスリープを解除するという仕組みになっています。ですが、利用するにはいくつかの問題があります。

・設定がとても煩雑
  起こされる側のWindowsで設定しなければならない箇所がいくつもあり、しかも隠し項目もあります。また場合によってはBIOSの設定を変更しなければならないこともあります。

・有線接続が必要
 ネットワークには有線LANでつながってなくてはいけません。無線LANはほぼ無理です。(無線LANで起こす仕組みも考えられてないこともないのですが、まず使えません)

・同じLAN上にいるPCしか起こせません
  マジックパケットは通常ブロードキャスト送信されるので、同じLAN上にいるPCしか起こせません。遠隔の場合VPNでつなげば理論上同じLANにいることになるはずなのですが、VPNの設定やネットワーク構成などいろいろな要因によってうまくいかない場合が多々あります。
 それじゃ意味がないのでは。。 ということで、後からIPベースの別の仕組みが考えられたりもしてるのですが、それも機種によって対応してたりしてなかったりで混乱がさらに増しています。



 
■Wake on Lanの設定(起こされる側)

ずいぶんと長くなりましたがようやく設定です。
 


2020-09-11 (1)
まず、ネットワーク設定の「ハードウェアと接続のプロパティを表示する」を表示して、起こしたいPCのイーサネット接続の物理アドレス(MAC) を調べます。
起こす側のPCのWake on Lanアプリを後で設定する際にこの物理(MAC)アドレスが必要になります。
2020-09-11
デバイスマネージャで有線接続のネットワークアダプターのプロパティの電源管理を表示します。

「このデバイスで、コンピューターのスタンバイを解除できるようにする」をチェックします。

「Magic Packetでのみ、コンピューターのスタンバイ状態を解除できるようにする」 Wake on Lanがうまくいく場合はここをチェックしておきます。

このチェックが外れている場合はどんなネットワーク接続がきてもスリープから解除するようになります。このチェックを外しておくと例えば、最初のリモートデスクトップ接続は失敗するのですが、それによってPCのスリープが解除されるので暫くしてもう一度リモートデスクトップを試すとつながるようになります。Wake on Lanが必要ない半面、なんでもないネットワーク経由の問合せですぐにスリープが解除してしまうので考慮する必要があります。
ターミナルを開いて、以下のコマンドを実行します
powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE

 


2020-09-11-(3)
 「詳細な電源設定の変更」を表示して、スリープの中の "システム無人スリープタイムアウト" を0分にします。デフォルトの2分のままですとWake on Lanで起動して2分何もしてないとすぐにまたスリープしてしまいます。
 この項目は実は隠し項目になっていて、ターミナルで上記コマンドを打たないと見えないようになっています。。

 さらに、「電源ボタンの動作を選択する」のシャットダウン設定の中の、「高速スタートアップを有効にする」のチェックを外します。
以上でWindowsの設定は終わりです。 Wake on Lanの起こす方は、PCのアプリケーション、iOS/Androidのアプリなどいろいろなものがあります。起こされる方は有線でつながってないといけませんが、起こす方は無線LAN接続でも大丈夫です。最初に控えた物理(Mac)アドレスを設定し、まずは同じLAN内でテストしてみましょう。

もしうまくいかなかった場合、BIOSの設定の変更が必要な場合があります。BIOSを起動し、Wake on Lanの設定がないか確認してください。
それでもうまくいかない場合は、Wake on Lanでの起動は諦めましょう。。。 MagicPacket以外でも起動する設定などをお試しください。



2020-09-11-(4)
 同じLAN内でうまくいったらVPNで遠隔でテストします。ただしテストのためにいったんスリープさせて、もしWake on Lanでスリープが解除されなかった場合は起こす手段が無くなってしまいますので、会社の人に起動をお願いするなどの保険を用意しておいてください。

 同じLAN上だと大丈夫なのにVPN越しだとなんらかの要因によりWake on Lanがうまくいかない場合があります。弊社のVPNも残念ながらそのパターンです。

 その場合はWake on Lanが通るようにあれこれ苦労するよりも代替を考えるのが手っ取り早いでしょう。
 同じLAN内に必ず起動しているPCを用意してまずそこに接続し、そこから起こしたいPCをWake on Lanすれば良いのです。社内LAN上にウェブサーバーが動いていましたら、ちょっとしたCGIを書けばブラウザからWake on Lanできます。
 
以上になります。やってみたいと思われた方は是非トライしてみてください。

(尚この記事に関してのご質問等には一切お答えできず、一切の保証もできません。滅多なことは滅多に起きないと思いますがトライする場合は自己責任でお願いいたします。)