single.php

PowerShellでWake On LANのマジックパケットを送信する

電源オフ(休止状態も含む)状態から、ネットワーク内の別デバイスから起動する(Wake On LAN)ための専用パケットはアプリを使わずに、PowerShellのスクリプトからでも送信することができます。

Wake On LAN

電源オフの状態から、LAN上の他デバイスから起動させることができる「Wake On LAN」。マザーボードが対応している必要がありますが、離れた場所にあるパソコンをリモート接続して使いたい場合などに便利な機能です。

その仕組みは、マジックパケットと呼ばれる専用のパケットをネットワーク内に配信して、パソコンの電源を回復させます。

マジックパケットの送信

通常は「Wake On LAN」用のアプリを使って起動することが多いですが、PowerShellのスクリプトを使って送信することもできます。

出先などでアプリのダウンロードやインストールができない場合など、スクリプトを書く(コピペ)だけで済みます。

具体的な手順は

1. メモ帳を起動して、次のスクリプトをコピーします。

$macAddr=[byte[]]("XX-XX-XX-XX-XX-XX".split("-") | ForEach-Object{[Convert]::ToInt32($_, 16)});
$magicPacket=([byte[]](@(0xff)*6)) + $macAddr * 16;
$udpClient=new-object System.Net.Sockets.UdpClient;
$WakeUpTarget=[System.Net.IPAddress]::Broadcast;
$udpClient.Connect($WakeUpTarget, 9);
$udpClient.Send($magicPacket, $magicPacket.Length)|out-null;
$udpClient.Close();
Write-Output "Send MagicPacket.";

[XX-XX-XX-XX-XX-XX]の部分には、起動するコンピューターのMACアドレスを入力します。

2.[ファイル|名前を付けて保存]メニューを選択します。

3. 表示された[名前を付けて保存]画面で 拡張子(.ps1)で保存します。

4. 保存したファイルを実行します。

休止状態(または電源オフ状態)の対象パソコンの電源が復帰することができれば、操作は終了です。

実行時にエラーが発生するような場合には、スクリプトを確認します。「Visual Studio Code」などを使ってコードをチェックした方が効率的にエラーを見つけることができます。

まとめ

PowerShellスクリプトを使えば、専用アプリを使わなくてもWake On LANで必要なマジックパケットを送信することができます。

出先のパソコンや、アプリのインストールが制限されているような場合に、簡単なスクリプトでWake On LAN機能を利用することができるようになります。

Wake On LANの専用アプリで迷っている方の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

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