Wake On Lan Script WOL mit PowerShell
Um eure Computer per Wake On LAN / WOL in euren Netzwerk starten zu können, ist ein einfaches PowerShell Script notwendig. Dieses Script sendet ein Magic Paket an die Netzwerkkarten der gelisteten MAC – Adressen. Diese Funktion ist sehr hilfreich, wenn man Beispielsweise mehrere Computer am Wochenende updaten will. Noch ein Anwendungsgebiet ist, wenn man einen Computer starten will, den man von der Entfernung her sehr schwer erreichen kann. (Anderer Standort / Büro). Praktisch wäre das natürlich als Aufgabenplanung auszuführen, um den Computern am Wochenende Updates installieren zu lassen. 😉
Als erstes brauchen wir eine Liste von MAC – Adressen der Clients in einem Textfile:
(WakeOnLanMAC.txt – SAMPLE)
90FBA678C858 90FBA678C7DB 90FBA678C7C8 90FBA678C517 90FBA678C80B 90FBA678C87F 90FBA678C52F 90FBA678C7DE 90FBA678C80D 8C89A5ED4770 0019999A9012 4437E6C9E468
Die MAC – Adressen für WOL müssen untereinander gelistet werden, ohne ein Komma oder einem anderen Trennzeichen.
Danach brauchen wir noch ein Wake On Lan / WOL PowerShell Script:
(wakeonlan.ps1)
#Eingabedatei $InputFile = "C:\JOBS\WakeOnLanMAC.txt" function Send-Packet([string]$MacAddress) { try { $Broadcast = ([System.Net.IPAddress]::Broadcast) ## Create UDP client instance $UdpClient = New-Object Net.Sockets.UdpClient ## Create IP endpoints for each port $IPEndPoint = New-Object Net.IPEndPoint $Broadcast, 9 ## Construct physical address instance for the MAC address of the machine (string to byte array) $MAC = [Net.NetworkInformation.PhysicalAddress]::Parse($MacAddress.ToUpper()) ## Construct the Magic Packet frame $Packet = [Byte[]](,0xFF*6)+($MAC.GetAddressBytes()*16) ## Broadcast UDP packets to the IP endpoint of the machine $UdpClient.Send($Packet, $Packet.Length, $IPEndPoint) | Out-Null $UdpClient.Close() } catch { $UdpClient.Dispose() $Error | Write-Error; } } #Fuer jede MAC in Zeile: Function 'Send-Paket + MAC' ForEach ($MacAddress in get-content $InputFile) { Send-Packet $MacAddress }
Zuletzt müssen wir nur noch die Zeile 2 anpassen (Pfad zur Datei mit den Adressen), das Powershell Script ausführen und die Computer fahren hoch 🙂
Hinweis
Bitte denkt daran, dass im BIOS des Computers natürlich Wake On LAN aktiviert sein muss.