PowerShellでWake-on-LAN

遠隔でPC/サーバの電源を投入したい、かつタスクスケジューラで制御したい、など。
そんなとき便利なのがWOLですね。

WOL(Wake on LAN)については高機能なフリーウェアもありますが、勝手にソフトウェアをインストールできない環境など、Windows標準のツールできると便利です。
ということで、今回はPowershellスクリプトでWOLします。

要はマジックパケットを投げれれば良いので、.NETのSocketオブジェクトを使ってブロードキャストしているだけです。
対象のNICについて物理アドレス(MACアドレス)を調べ、先頭にリストとして定義しておいて下さい。

同じサブネットでしか試したことがないのですが、ブロードキャストということは別セグメントには投げられないのだろうか。。。