茱萸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

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

関連記事

STM32F042でAVRプログラマを作る

秋月で販売しているSTM32F042K6T6でAVRプログラマを作ります.

権限のない環境でvirtualenvを入れる

sudoが使えない、root権限のない環境でvirtualenvを入れます。

空のSSD・HDDにWindowsをインストールする

空っぽのSSD・HDDにWindowsをインストールする方法です。

ESP8266 で AES-CBC PKCS#7 Padding による暗号化・復号

ESP8266 で AES アルゴリズム・CBC モード・PKCS7 パディング の暗号化・復号化をする方法を述べます。

C言語でのマイコンプログラミングのお作法

マイコンのプログラムをC言語で書く際に心がけるべきこと、知っておくべき知識について述べます。