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

2022年3月5日app

この記事は2022年11月12日に書かれたものです。情報が古い可能性がありますのでご注意ください。

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

Windows7以降のOSであることが必要。
BIOSの設定・高速スタートアップOFF・ネットワーク アダプターなど、端末の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. 文字化け対策
    テキストファイルを「名前を付けて保存」する
    エンコード「ANSI」を選択して保存
  7. 拡張子を「.txt」から「.bat」に変更
  8. バッチファイルを実行
  9. 12行目~18行目を削除すればコマンドプロンプト画面は自動的に閉じられる
  10. 起動しない場合は何度かバッチファイルを実行してみると良いかも