Powershell實現遠程喚醒,遠程喚醒需要被喚醒的電腦支持遠程喚醒,需要關閉電腦的睡眠、支持遠程喚醒,可通過BIOS設置。
遠程喚醒時向網絡中發送UDP的數據包,數據包前兩個字節爲0xFF,後面緊接着是被喚醒設備的MAC地址重複16遍,整個包的長度是102個字節
具體的Powershell腳本如下
param($Mac)
echo “Wake up $Mac ”
$byteArray =[Byte[]](,0x00*102)
for($i=0;$i -lt 6; ++$i)
{
$byteArray[$i]=0xFF
}
$mac= $Mac.split('-')|foreach{('0x'+$_)}
for($i=1;$i -le 16; ++$i)
{
for($j=0;$j -lt 6;++$j)
{
$byteArray[$i*6+$j]=$mac[$j]
}
}
$UdpClient = New-Object System.Net.Sockets.UdpClient
$UdpClient.Connect(([System.Net.IPAddress]::Broadcast) ,9)
$UdpClient.Send($byteArray,$byteArray.length)