Wake-On-Lan with PowerShell
Here is a code snippet from PowerShell script that I found on the net (thanks Brandon!) that actually works, as opposed to many examples I tried out that did not send magic packet correctly…
function Send-WOL{
param ($macaddy)
$mymac = $macaddy.split(':') | %{ [byte]('0x' + $_) }
if ($mymac.Length -ne 6)
{
throw 'Mac Address Must be 6 hex Numbers Separated by : or -'
}
Write-Verbose "Creating UDP Packet"
$UDPclient = new-Object System.Net.Sockets.UdpClient
$UDPclient.Connect(([System.Net.IPAddress]::Broadcast),4000)
$packet = [byte[]](,0xFF * 6)
$packet += $mymac * 16
Write-Verbose ([bitconverter]::tostring($packet))
[void] $UDPclient.Send($packet, $packet.Length)
Write-Host " - Wake-On-Lan Packet of length $($packet.Length) sent to $mymac"
}
…and here is an example:
PS E:\> Send-Wol(’70:f3:95:15:00:b5′)
– Wake-On-Lan Packet of length 102 sent to 112 243 149 21 0 181
PS E:\>
Posted on 25.07.2011, in Scripting and tagged powershell, Scripting, windows. Bookmark the permalink. Comments Off on Wake-On-Lan with PowerShell.