WakeOnLAN、マジックパケットとは?便利なWOL備忘録

PowerShell

おはようございます。NAOです!コンピューターのWakeOnLANという機能を知っている方も知らない方の為にもWakeOnLANの役に立つ備忘録です。

ツールをダウンロードしなくてもWindowsのメモ帳1つあればWakeOnLanをPowerShellで動かせます。

WakeOnLANとは?

WakeOnLANとは直訳するとLANが目覚めるという意味です。

もう少し詳しく言うと同じネットワークに接続されたコンピュータを他のコンピュータから電源起動させる機能です。WOLと略すことが多いです。

この遠隔で起動したりできるパケットをMagicPacket(マジックパケット)と呼びます。

WakeOnLANの特徴

簡単に書くとこんな感じです。

  • 遠隔で電源起動したいパソコンの電源起動が可能
  • 同じネットワーク(セグメント)内でしかMagicPacketは送れない

WakeOnLANの実装条件

WakeOnLAN機能を実装するには、起動させたいパソコン側で設定があります。

  • BIOSでWakeOnLANを有効にする
  • ネットワークアダプタのプロパティ「詳細設定」からWOLを有効にする

有効にするとパソコンの電源が切れていてもPing通信が出来ます。

電源OFFの間は10Mで待機している状態になります。

PowerShellによるWOL

PowerShell_wol
PowerShellマジックパケット送信画面

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にして保存すると完了です。

拡張子.ps1

これでPowerShellを起動すると、対象の端末にマジックパケットが送ることが出来ます。マジックパケットを操れるなんて魔法使いみたいです。

その他に役に立つWakeOnLAN用のツールがありますがまた更新時に追記します。

それではー!

コメント

タイトルとURLをコピーしました