Wake-on-LAN mit PowerShell: So weckst du deinen Server oder PC auf

In diesem Artikel erkläre ich, wie du ein PowerShell-Skript nutzen kannst, um einen QNAP-Server (oder jedes andere Wake-on-LAN-fähige Gerät) im Netzwerk aufzuwecken. Dabei wird ein sogenanntes Magic Packet gesendet, das den Server aus dem Ruhezustand holt.

Voraussetzungen

  • Wake-on-LAN muss im BIOS/UEFI und in den Netzwerkeinstellungen des Geräts aktiviert sein.
  • Das Gerät und der Rechner, von dem aus das Skript ausgeführt wird, müssen sich im selben Netzwerk befinden.
  • PowerShell (ab Version 3.0) sollte installiert sein.

Das PowerShell-Skript

Das folgende Skript verwendet die MAC-Adresse des QNAP-Servers, um ein Magic Packet an die Broadcast-Adresse des Netzwerks zu senden. Dies ist der entscheidende Schritt, um das Gerät aufzuwecken.

# Variablen für die IP-Adresse, MAC-Adresse und Port
$IpAddress = "192.168.1.10"
$MacAddress = "24:5e:00:01:02:b7"
$BroadcastAddress = "192.168.1.255" # Standard-Broadcast-Adresse im Subnetz
$Port = 9 # Standard-Wake-On-LAN-Port

# Funktion, um das Wake-On-LAN Magic Packet zu senden
function Send-WakeOnLan {
    param (
        [string]$MacAddress,
        [string]$BroadcastAddress,
        [int]$Port
    )

    # MAC-Adresse in ein Byte-Array umwandeln
    $MacBytes = $MacAddress -split "[:-]" | ForEach-Object { [byte]("0x$_") }

    # Magic Packet erstellen (6x 0xFF gefolgt von 16 Wiederholungen der MAC-Adresse)
    $MagicPacket = @([byte]0xFF) * 6 + ($MacBytes * 16)

    # Magic Packet via UDP senden
    $UdpClient = New-Object System.Net.Sockets.UdpClient
    $UdpClient.EnableBroadcast = $true
    $Endpoint = New-Object System.Net.IPEndPoint ([System.Net.IPAddress]::Parse($BroadcastAddress), $Port)
    $UdpClient.Send($MagicPacket, $MagicPacket.Length, $Endpoint)
    $UdpClient.Close()

    Write-Output "Wake-On-LAN-Paket wurde an $MacAddress über ${BroadcastAddress}:${Port} gesendet."
}

# Wake-On-LAN senden
Send-WakeOnLan -MacAddress $MacAddress -BroadcastAddress $BroadcastAddress -Port $Port

Wie funktioniert das Skript?

Das Skript besteht aus zwei Teilen: der Definition der Funktion Send-WakeOnLan und dem Aufruf dieser Funktion mit den festgelegten Variablen.

  • MAC-Adresse: Die MAC-Adresse des Zielgeräts wird benötigt, um das Magic Packet korrekt zu adressieren.
  • Broadcast-Adresse: Die Broadcast-Adresse wird verwendet, um sicherzustellen, dass das Magic Packet alle Geräte im Netzwerk erreicht.
  • Port: Standardmäßig wird Port 9 verwendet, aber einige Geräte können auch Port 7 nutzen.
  • Magic Packet: Es handelt sich um eine spezielle Nachricht, die 6-mal 0xFF gefolgt von 16 Wiederholungen der MAC-Adresse enthält.

Nutzung

Speichere das Skript als .ps1-Datei, zum Beispiel WakeOnLan.ps1. Öffne dann PowerShell mit Administratorrechten und führe das Skript mit folgendem Befehl aus:

.\WakeOnLan.ps1

Wenn alles korrekt eingerichtet ist, wird das Magic Packet gesendet, und dein QNAP-Server sollte starten.

Fazit

Mit diesem Skript kannst du deinen QNAP-Server (oder andere Geräte) bequem per PowerShell aufwecken. Wake-on-LAN ist eine praktische Möglichkeit, Geräte effizient zu verwalten, ohne sie ständig laufen lassen zu müssen.

Hast du Fragen oder Anregungen? Schreibe sie gerne in die Kommentare!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte lösen Sie die folgende Rechenaufgabe, um zu zeigen, dass Sie kein Bot sind. Danke! * Time limit is exhausted. Please reload CAPTCHA.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.