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
$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
RRS feed