Как при помощи Powershell отправить Wake On Lan (WOL)?

03 май 2025, Суббота
11
0
0 0
Отправка Wake-on-LAN (WOL) с помощью PowerShell позволяет "разбудить" удаленный компьютер, отправив специальный "магический пакет" (magic packet) по локальной сети. Этот пакет содержит MAC-адрес целевого устройства, которое должно быть настроено для поддержки WOL. В статье ниже описано, как сформировать такой пакет и отправить его по сети:

1. Предварительные настройки на целевом устройстве

  • Настройте BIOS/UEFI: Включите функцию Wake-on-LAN.
  • Настройте сетевую карту (В Windows: Откройте "Диспетчер устройств", найдите сетевую карту, откройте её свойства, перейдите во вкладку "Управление электропитанием" и включите опцию "Разрешить этому устройству выводить компьютер из ждущего режима").
  • Убедитесь, что компьютер находится в спящем режиме или выключен, но подключен к питанию.

2. Скрипт PowerShell для отправки WOL

Ниже приведен пример скрипта PowerShell, который отправляет магический пакет:

# Функция для отправки Wake-on-LAN пакета
function Send-WakeOnLan {
    param (
        [Parameter(Mandatory=$true)]
        [string]$MacAddress,

        [string]$BroadcastAddress = "255.255.255.255",

        [int]$Port = 9
    )

    # Преобразуем MAC-адрес в массив байтов
    $macBytes = $MacAddress -split '[:-]' | ForEach-Object { [byte]$_ }

    # Создаем магический пакет (6 байт FF + 16 повторений MAC-адреса)
    $magicPacket = [byte[]](,0xFF * 6 + ($macBytes * 16))

    # Создаем UDP клиент
    $udpClient = New-Object System.Net.Sockets.UdpClient
    $udpClient.Connect($BroadcastAddress, $Port)

    # Отправляем пакет
    Write-Host "Отправка WOL пакета на MAC: $MacAddress"
    $bytesSent = $udpClient.Send($magicPacket, $magicPacket.Length)

    # Закрываем соединение
    $udpClient.Close()

    if ($bytesSent -eq $magicPacket.Length) {
        Write-Host "Пакет успешно отправлен."
    } else {
        Write-Host "Ошибка при отправке пакета."
    }
}
Пример использования:
$mac = "00-1A-2B-3C-4D-5E"  # Замените на MAC-адрес вашего устройства
Send-WakeOnLan -MacAddress $mac

Примечания

  • Если компьютер не включается, проверьте:
    • Настройки BIOS/UEFI.
    • Настройки сетевой карты.
    • Правильность MAC-адреса.
    • Доступность широковещательного адреса в вашей сети.
Комментарии:
Прокомментировать
При использовании материалов ссылка на сайт UserMan.ru обязательна.
Политика конфиденциальности
Пользовательское соглашение
UserMan.ru © 2017-2025
Соцсети: VK