おはようございます!コンピューターのWakeOnLANという機能を知っている方も知らない方の為にもWakeOnLANの役に立つ備忘録です。
ツールをダウンロードしなくてもWindowsのメモ帳1つあればWakeOnLanをPowerShellで動かせます。
マジックパケットとは?
WakeOnLANとは直訳するとLANが目覚めるという意味です。
もう少し詳しく言うと同じネットワークに接続されたコンピュータを他のコンピュータから電源起動させる機能です。WOLと略すことが多いです。
この遠隔で起動したりできるパケットをMagicPacket(マジックパケット)と呼びます。
WakeOnLANの特徴
簡単に書くとこんな感じです。
- 遠隔で電源起動したいパソコンの電源起動が可能
- 同じネットワーク(セグメント)内でしかMagicPacketは送れない
WakeOnLANの実装条件
WakeOnLAN機能を実装するには、起動させたいパソコン側で設定があります。
- BIOSでWakeOnLANを有効にする
- ネットワークアダプタのプロパティ「詳細設定」からWOLを有効にする
有効にするとパソコンの電源が切れていてもPing通信が出来ます。
電源OFFの間は10Mで待機している状態になります。
PowerShellによるWOL
PowerShellを使って電源起動をさせましょう。WOLはレイヤー2パケットなのでMACアドレスを使用します。決まったパソコンであればMACアドレスを記述しておいて起動させましょう。
WOLのPowerShell作成方法
1.メモ張に下記のコードを貼付け
$mac_addr = @(“ab:ee:ad:77:55:cc“)
$header=byte[]
#
foreach ($item in $mac_addr){
Write-Host “send magic packet to:” $item
$addr = byte[] | %{ [Convert]::ToInt32($_, 16)});
$magicpacket = $header + $addr * 16;
$target = [System.Net.IPAddress]::Broadcast;
#
$client = New-Object System.Net.Sockets.UdpClient;
$client.Connect($target, 2304);
#
$client.Send($magicpacket, $magicpacket.Length) | Out-Null
$client.Close();
#
Write-Host “Send magic packet to:” $item -ForegroundColor Green
}
pause
2.MAC部分のみを対象パソコンのMACに変更します。
$mac_addr = @(“77:ee:dd:77:dd:77“)
3.保存時の拡張子を.ps1にして保存すると完了です。
これでPowerShellを起動すると、対象の端末にマジックパケットが送ることが出来ます。マジックパケットを操れるなんて魔法使いみたいです。pingが通りさえすれば遠隔での電源ONが可能になります。ping範囲を指定するバッチはこちら
その他に役に立つWakeOnLAN用のツールがありますがまた更新時に追記します。それではー!
良ければ過去記事も見てみてください↓