Autorun-Skript: WakeOnLAN für Netzwerkadapter unter Windows 10 aktivieren

Zuletzt geändert von David Haido am 2022/03/23 11:22

Mit nachfolgendem PowerShell-Skript (abgespeichert unter C:\logoDIDACT\Autorun\setup\10_enable-wol.ps1) kann sichergestellt werden, dass die WakeOnLAN-Funktion unter Windows für alle Netzwerkadapter aktiviert ist, die diesen Modus unterstützen.

Wichtig:
Es gilt hierbei darauf zu achten, dass die Unterstützung durch den Treiber geliefert wird und daher ein vernünftiger LAN-Treiber passend zum Netzwerkadapter unter Windows 10 (ins Image) installiert werden muss. Der von Microsoft mitgelieferte LAN-Treiber unterstützt WakeOnLAN von Haus aus nicht.

#Requires -Version 3

<#
   .SYNOPSIS
       Enable WakeOnLan on all supported physical NICs

   .DESCRIPTION
       Enable WakeOnLan on all supported physical NICs via cmdlet Set-NetAdapterPowerManagement

   .PARAMETER WhatIf
       Check for supported ethernet adapters without applying actual changes

   .NOTES
       Version:        1.0
       Author:         jm@sbe.de
       Creation Date:  26.06.2020

   .LINK
       https://sbe.de

   .EXAMPLE
       C:\PS> $MyInvocation.MyCommand.Name

#>

Param (
    [Parameter(Mandatory = $false)]
   [Switch]$WhatIf
)

$ErrorActionPreference = "SilentlyContinue"

function EnableWOL([Bool]$DryRun = $False) {
   if ($DryRun) { $DryRun_Hint = "[DRYRUN] " }
   Get-NetAdapter -Physical -Name Eth* | Get-NetAdapterPowerManagement | Where-Object { $_.WakeOnMagicPacket -ieq "Disabled" } | ForEach-Object {
       Write-Host ("{0}Enabling WakeOnLan support on ethernet adapter '{1}'" -f $DryRun_Hint, $_.InterfaceDescription)
       if (-not $DryRun) {
           Set-NetAdapterPowerManagement -InterfaceDescription $_.InterfaceDescription -WakeOnMagicPacket Enabled
        }
    }
}

EnableWOL -DryRun $WhatIf

Bei erfolgreicher Umsetzung, sieht man im Gerätemanager, in den Eigenschaften des richtigen Netzwerkadapters, das es aktiviert ist.

1647867846712-282.png