PowerShell で WOL マジックパケットを送信する

以前、Wake On LAN のマジックパケットを送信する Perl スクリプトを紹介した。

コチラは主に MacOS 用ということだったが、PowerShell でも同様にマジックパケットを送信できるスクリプトを見つけた。

@Echo Off

Rem MAC アドレスを書く。2文字ごとにハイフンかコロンで区切る
Set MAC_ADDRESS=AB-CD-EF-12-34-56

Rem ハイフンで入力された場合はコロンに変換する
Set MAC_ADDRESS=%MAC_ADDRESS:-=:%

Rem マジックパケットを送信する
Powershell "$dst=[byte[]]("""%MAC_ADDRESS%""".split(""":""") | ForEach-Object{[Convert]::ToInt32($_, 16)});$magicPacket=([byte[]](@(0xFF)*6)) + $dst * 16;$client=new-object System.Net.Sockets.UdpClient;$target=[System.Net.IPAddress]::Broadcast;$client.Connect($target,9);$client.Send($magicPacket,$magicPacket.Length)|out-null;$client.Close()"
 
Echo マジックパケットを送信しました。
Pause
Exit /b

こんな感じで良いらしい。

コレで Windows マシンからもマジックパケットが送信できるようになった。