Home > Windows にまつわる e.t.c.

PowerShell WOL


PowerSehll で WOL(Wake on LAN) のマジックパケット投げるスクリプト書いてみました

PowerShell 6 beta 9 でも動いたので、Linux / Mac でも動くはず

 

使い方

WOL.ps1 -MacAddress WOL 対象 MAC アドレス -NetworkAddress 対象ネットワーク

 

オプション

-MacAddress
    WOL 対象 MAC アドレス(複数指定可)
    "-" or ":" でセパレート

-NetworkAddress
    対象ネットワーク/CIDR
    レンジ内の IP アドレスなら何でも OK

-SubnetMask
    サブネットマスク
    対象ネットワークで CIDR 指定をしなかった場合に指定

-Port
    UDP ポート番号
    省略時 : 7

-NoLog
    ログ出力をしない

 

実行例

.\WOL.ps1 02-15-90-CA-0F-2A 192.168.0.15/24

.\WOL.ps1 02-15-90-CA-0F-2A 192.168.0.15 255.255.255.0

.\WOL.ps1 -NetworkAddress 192.168.0.15/24 -MacAddress 02-15-90-CA-0F-2A -NoLog

$MacAddresses = "02-15-90-CA-0F-2A", "02-15-90-CA-0F-2B"
.\WOL.ps1 $MacAddresses 192.168.0.15/24

 

スクリプトダウンロード

GitHub リポジトリ

git@github.com:MuraAtVwnet/PowerShell-WOL.git

https://github.com/MuraAtVwnet/PowerShell-WOL

 

直接ダウンロードする場合は、以下を PowerSehll プロンプトに貼り付けてください

$URI = "https://github.com/MuraAtVwnet/PowerShell-WOL/archive/master.zip"
$OutputPath = "C:\PowerShellWOL"
if( -not(Test-Path $OutputPath)){ md $OutputPath }
$OutputFile = Join-Path $OutputPath "PowerShell-WOL.zip"
wget $URI -OutFile $OutputFile
ii $OutputPath

 

通信仕様

対象ネットワークのブロードキャストアドレスに UDP/7 の 1 パケットを送信
(ポート番号は変更可能)

データ部(102 bytes)

0xff x6 +
MAC Address(6 bytes) x16

 

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.