NAS・他PCをWOLで起動させるbatファイル

ルータに静的IPマスカレードの設定やWOL機能が無かったり、ポートマッピング(NATエントリ)等の設定は面倒。
しかし家(同じLAN上)にあるPCなどの端末をWOLしたい、という方が対象の記事。

Windows7以降のOSであることが必要。
BIOS・高速スタートアップ・ネットワーク アダプターなど、端末のWOL設定は別途行う必要がある。

  1. デスクトップ上で右クリックし、新規作成→テキスト ドキュメント
  2. テキストファイルを開く
  3. 下記コードをコピーしてテキストファイルに貼り付け
  4. 
    @echo off
    :: 【↓MACアドレス定義/2文字毎にハイフン、またはコロンで区切ること】
    set MacAd=12-AB-34-CD-56-EF
    :: 【↑編集箇所はここのみ】
    
    :: ハイフンで入力された場合はコロンに変換する。
    set MacAd=%MacAd:-=:%
    
    :: 指定MACアドレスへWakeOnLan(同一セグメントでのみ有効)
    powershell "$dst=[byte[]]("""%MacAd%""".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()"
    
    :: 以下はpause付きコメント。不要であればこの行から下は全て削除すること。
    @echo --
    @echo 指定MACアドレス^<%MacAd%^>へWOL命令を発行しました。
    @echo (このWOLは同一セグメント内でのみ有効です。)
    @echo --
    pause
    exit /b 0
    
  5. 3行目「MacAd=」の右にWOLしたい端末のMACアドレスを入力
  6. テキストファイルを上書き保存
  7. 拡張子を「.txt」から「.bat」に変更
  8. バッチファイルを実行