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

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

関連記事

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

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

ESP8266 で Tp-Link のスマートプラグ『Tapo P105』を直接操作する

Tp-Link のスマートプラグ『Tapo P105』をアプリや IFTTT といった外部サービスを用いずに、ESP8266 から直接操作してみます。

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

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

プロキシ設定が必要な学内LANに接続するときに役に立つスクリプト

プロキシ設定が必要な学内 or 社内LANに接続する際のプロキシ設定の切り替えをしやすくするスクリプトを用意します。

Arduinoもどき

Arduinoは普通に買うと高いので、互換品を作ってしまいます。