![WOL]()
Köpt en ny NAS och knackade ihop ett enkelt Wake On Lan-script i Powershell.
Jag vill kunna fjärrstyra NASen
(Network Attached Storage för att lagra filer) och starta upp den från min klient och knackade ihop ett enkelt
PowerShell-script som löser detta.
Koden väcker först NASen med ett WOL-anrop.
Det tar ett tag för NASen att starta så andra delen i koden pingar tills den svarar och då får man återkoppling på att den är redo.
NN:NN:NN:NN:NN:NN byts ut till NASens MAC-adress som ofta står på en etikett på chassit.
192.168.IP3:IP4 byts ut till NASens statiska IP-adress som man anger i gränssnittet och som måste ligga utanför DHCP-intervallet i routern.
Koden lagras i en exekverbar fil på skrivbordet
WOL_NAS.ps1
[code]
$NasMac = "NN:NN:NN:NN:NN:NN"
$MacByteArray = $NasMac -split "[:-]" | ForEach-Object { [Byte] "0x$_"}
[Byte[]] $MagicPacket = (,0xFF * 6) + ($MacByteArray * 16)
$UdpClient = New-Object System.Net.Sockets.UdpClient
$UdpClient.Connect(([System.Net.IPAddress]::Broadcast),7)
$UdpClient.Send($MagicPacket,$MagicPacket.Length)
$UdpClient.Close()
$NasIP = "192.168.IP3:IP4"
do {
Write-Host "Pinging NAS @" $NasIP
sleep 3
} until(Test-NetConnection $NasIP -Port 80 | ? { $_.TcpTestSucceeded } )
Write-Host "NAS is online."
sleep 5
[/code]