茱萸note

電子工作の備忘録と旅行の記録

IoT Raspberry Pi Windows

Raspberry Pi で Windows PC をシャットダウン or スリープモードにする

投稿日:

Windows PC を Raspberry Pi から遠隔操作してシャットダウン or スリープモードにします。


目次


Raspberry Pi から PC を起動 or スリープからの復帰をするには、Wake on LAN を使う方法がよく知られています。ですが、その逆、すなわち、PC をシャットダウン or スリープモードにする方法はあまり紹介されていません。恐らく需要があまりないからでしょう。需要があまりないのを承知の上で、備忘録としてこの記事を残しておきます。

今回は、Windows PC 側に OpenSSH サーバーを立てて、Raspberry Pi から Windows PC に SSH ログインしてシャットダウン or スリープコマンドを発行する方法を用いました。

OpenSSH サーバーを Windows PC で有効にする

以下の記事を参考に Windows に OpenSSH サーバーを導入して、公開鍵認証を使ってログインできるようにしてください。

Raspberry Pi で、秘密鍵と公開鍵のペアを作成する必要がありますが、パスフレーズの入力はEnter を連打してスキップしておくことをおすすめします。LAN内でのSSH接続でしょうし、パスフレーズが設定されてしまうとログインの度に入力が必要となり、コマンドの自動実行が不可能になってしまいます。

Raspberry Pi からシャットダウン or スリープコマンドを発出!

Raspberry Pi で以下のコマンドを実行すると、SSH ログイン先のWindows PC がシャットダウンします。

bash💩ssh XXXXX@192.168.X.X shutdown -s -t 0

また、Raspberry Pi で以下のコマンドを実行すると、SSH ログイン先のWindows PC がスリープモードに突入します。

ssh XXXXX@192.168.X.X PowerShell -Command "Add-Type -Assembly System.Windows.Forms;[System.Windows.Forms.Application]::SetSuspendState('Suspend', \$false, \$false);"

これらのコマンドは、公開鍵認証でのログインが可能かつ鍵のパスフレーズが設定されていないのであれば、パスワード等の入力なしに実行できます。

一応コマンドの解説

SSH 接続は、一般的に以下のコマンドでできます。

ssh ユーザー名@192.168.X.X 接続先で実行するコマンド

接続先で実行するコマンド はオプションです。今回は、シャットダウン or スリープコマンドをここに書いています。

Windows のシャットダウンコマンドは、以下のとおりです。

bat💩shutdown -s -t 0

このコマンドはコマンドプロンプトでも PowerShell でも使えます恐らく。

コマンドプロンプトで使えるスリープコマンドは次のとおりです。

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

このコマンドは、こちらのサイトで紹介されていました。

カンの良い人なら分かると思いますが、これはコマンドプロンプトから PowerShell のコマンドを呼び出しています。PowerShell でスリープモードにするには、以下のコマンドを使います。

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

-電子工作
-, ,


comment

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

関連記事

【上級者向け】Ubuntuをデュアルブートする《その1:既にWindowsが入っているSSD・HDDにUbuntuを入れる》

既にWindowsがインストールされているSSD・HDDに追加でUbuntuをインストールする方法です。上級者向け。

Online Storageの画像を貼る

Online Storage上にアップロードした画像をBlog等に貼る方法を考察します。

【上級者向け】Ubuntuをデュアルブートする《その2:USBメモリ・外付けHDDにUbuntuを入れる》

WindowsとUbuntuでデュアルブートさせたいけど、Ubuntuは空っぽのUSBメモリ・外付けHDDに入れたい人向けの説明です。(超)上級者向け。

Alexa で ESP8266 を制御する ―― プログラムの解説編【Alexa×Arduino その3】

Alexa で ESP8266 を制御するプログラムの解説です。

AVR32を使う

Atmel製のマイコン「AVR32」を使ってみた感想です。