single.php

Wake On LANのマジックパケットをバッチファイルで送信する

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

この方法は、PowerShellのスクリプトを使うので、完全バッチファイルでは実現できないので、あらかじめご了承ください。

Wake On LAN

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

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

マジックパケットの送信

通常は「Wake On LAN」用のアプリを使って起動することが多いですが、PowerShellのスクリプトを使って送信することもできます。PS1ファイルで送信する場合は、別記事をご覧ください。

このPowerShell用のスクリプトをバッチファイルなどから呼び出すことで、ファイルをダブルクリックするだけでマジックパケットを送信できるようになります。

具体的な手順は

1. メモ帳を起動して、次の内容をコピーします。

@echo off
powershell "$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();"
pause
exit /b 0

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

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

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

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

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

powershell 以降のスクリプト内容については、別記事をご覧ください。

まとめ

PowerShellスクリプトをバッチファイルから呼び出すことで、専用アプリを使わなくてもWake On LANで必要なマジックパケットを送信することができます。

PowerShellがセットアップされている必要がありますが、バッチファイルを起動させる機能があれば、Wake On LANを自動化させることが可能になります。

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

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

スポンサーリンク

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

コメントを残す

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