Технология Wake on LAN (WoL) используется для удалённого пробуждения (включения) компьютера, который находится в спящем режиме (режиме пониженного энергопотребления). Сетевая карта компьютера инициирует процесс пробуждения компьютера после получение специального широковещательного пакета (magic packet) со своим MAC адресом. В этой статье мы рассмотрим, как настроить Wake on LAN на компьютере под управлением Windows.
В первую очередь нужно включить функцию Wake-on-LAN в настройках BIOS/UEFI компьютера. В зависимости от модели компьютера и версии прошивки название этой опции может отличаться. Она может называться:
- WOL (Wake-on-LAN)
- Power On By PCI-E
- Resume by PCI-E Device
- Resume by PME
- S4/S5 Wake on LAN
- ErP
$getLenovoBIOS = gwmi -class Lenovo_SetBiosSetting -namespace root\wmi
$getLenovoBIOS.SetBiosSetting("WakeOnLAN,Enable")
$SaveLenovoBIOS = (gwmi -class Lenovo_SaveBiosSettings -namespace root\wmi)
$SaveLenovoBIOS.SaveBiosSettings()
Затем нужно разрешить Wake on LAN (WOL) в настройках сетевого адаптера в Windows.
- Откройте диспетчер устройств (
devmgmt.msc
); - Разверните секцию Network Adapters и откройте свойства вашего физического сетевого адаптера;
- Перейдите на вкладку Advanced и проверьте, что опция Wake on magic packet включена (название может отличаться в зависимости от сетевой карты). В сетевых картах Intel эта опция может называться PME (Power Management Event);
. Можно с помощью PowerShell проверить, включены ли опции WakeOnLan в настройках сетевого адаптера:
Get-NetAdapter -Physical | Get-NetAdapterAdvancedProperty | where {($_.DisplayName -like '*WOL*') -or ($_.DisplayName -like '*Wake*')}
Чтобы включить WOL с помощью PowerShell в настройках сетевого адаптера, можно использовать такую команду (зависит от драйвера и венднодоа NIC):
Get-NetAdapter -Physical | Set-NetAdapterPowerManagement -WakeOnMagicPacket Enabled -WakeOnPattern Enabled
- Затем перейдите на вкладку Advanced и разрешите сетевой карте выводить компьютер из спящего режима. Включите опции Allow this device to wake the computer и Only allow a magic packet to wake the computer. Можно включить эту опцию с помощью команды:
powercfg /deviceenablewake "Realtek PCIe GbE Family Controller"
С помощью следующей команды можно проверить, каким устройствам разрешено будить компьютер:
powercfg /devicequery wake_armed
В данном случае видно, что сетевой карте Realtek PCIe разрешено выводить компьютер из спящего режима.
Теперь, вы можете отправить WoL пакет для удаленного включения компьютера с другого устройства в той же локальной сети. Magic Packet содержит аппаратный адрес сетевой карты (MAC адрес), компьютера который нужно включить. Вы можете узнать MAC адрес сетевой карты компьютера из команды
ipconfig /all
или получить его с помощью PowerShell:
Get-NetAdapter -Physical
Вы можете сформировать и отправить широковещательный magic пакет WOL с помощью PowerShell. Укажите MAC адрес устройства, которое нужно включить в следующем скрипте и выполните его:
$Mac = "08:9e:01:6b:52:a2"
$MacByteArray = $Mac -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()
Если вы все настроили правильно, удаленный компьютер должен проснуться.
UDP порт 9
) на уровне коммутаторов/маршрутизаторов.Для удаленного пробуждения компьютеров можно использовать бесплатную Windows утилиту от NirSoft WakeMeOnLan. Утилита позволяет автоматически просканировать LAN и найти все доступные устройства, или вы можете вручную добавить устройства, которые вы хотите включать удаленно через WakeOnLan.
Утилита поддерживает режим работы из командной строки. Чтобы включить компьютер, нужно выполнить команду (утилита отрезолвит IP адрес в MAC по arp таблице):
WakeMeOnLan.exe /wakeup 192.168.31.15
Или по MAC адресу:
WakeMeOnLan.exe /wakeup 08-9E-01-6B-52-A2
Также можно использовать утилиты для смартфонов. Например, Wake On LAN для Android (для удаленного включения компьютера вы должны быть подключены к той же LAN через Wi-Fi точку доступа).
Откройте панель
powercfg.cpl
-> Choose what the power buttons do -> Change settings that are currently unavailable -> отключите опцию Turn on fast startup (recommended).
На материнках от gigabyt ErP должен быть наоборот выключен, иначе WOL работать не будет.
Сидел, не понимал в чем проблема. Увидел ваш комментарий и попробовал, действительно заработало когда отключил erp. Но материнская плата msi
У меня был опыт по удалённому запуску домашнего сервера с proxmox. Команду Wake On LAN отправлял с модема Keenetic Speedster. Материнка на сервере Asus H310M-K, сетевую карту сначала использовал встроенную, но работало через раз. При выключенном ПК иногда сетевая карта светится, в этом случае запуск через Wake On LAN успешный, но чаще всего при выключении ПК светодиод сетевой карты тоже угасал, понятно что никакого запуска не будет, никто не слушает сеть. Перечитал много форумов и большинство пишут, что дежурное питание гарантированно подаётся только на PCI-E шину, в итоге пришлось установить серверную сетевую карту Intel Pro1000, только с ней запуск Wake On LAN стал стабильным.
команда powercfg /deviceenablewake включает только allow wake, а как поставить галку на only magic packet?
до установки специалистами SSD сама пробовала настраивать WOL (биос, диспетчер устройств и т.д.) — все получилось. Специалист установил мне SSD и теперь пройдя опять весь путь настройки запускать пк через эни деск как раньше не получается. Пишет не найдено устройство WOL.
у меня такая же история, получилось решить проблему?
Если все остальны настройки по статье проверили, получается что по какой-то причине SSD препятсвует переходу компьютера в полноценный спящий режим, который нужен для WOL. Я бы проверил:
— отключить fast startup
— специфические настройки SSD (родной утилите, если есть)
— возможно в настройках электропитания нужно тушить диск пораньше
«— возможно в настройках электропитания нужно тушить диск пораньше»
а можно подробнее я записываю «нужно тушить диск пораньше»