Друзья, подскажите пожалуйста, в чем ошибка?
Пытаюсь с raspberry разбудить mac os. Утилиту wakeonlan на малину установил. Пока пробую напрямую через ssh, но получаю вот такой ответ:
[Сценарий] Интеграция Wake On Lan
-
- Сообщения: 20
- Зарегистрирован: Пн июл 30, 2018 8:45 am
- Благодарил (а): 29 раз
- Поблагодарили: 0
- Stan
- Сообщения: 81
- Зарегистрирован: Вт фев 13, 2018 2:37 am
- Благодарил (а): 11 раз
- Поблагодарили: 8 раз
Re: Интеграция Wake On Lan
А как можно включить режим гибернации, а не полностью выключить удаленный компьютер? Для выключения сейчас использую shell_exec("shutdown /s /f /m \\\\192.168.1.10 /t 1");, но дело в том, что включить его уже из этого состояния удаленно не получается. А команда вида shell_exec("shutdown /h /f /m \\\\192.168.1.10 /t 1"); результатов не дает.
UPD: В итоге сделал через getURL.
По совету skysilver поставил это https://blog.instalator.ru/archives/47 на комп, который надо выключить, добавил в нее ссыль на shutdown.exe с параметром -h, в МД сделал сценарий с кодом: По итогу рабочий комп с панели управления МД легко и непринужденно уходит в гибернацию, из которой потом так же легко просыпается кодом (который я весь и полностью спер из сценариев у sergejey):
UPD: В итоге сделал через getURL.
По совету skysilver поставил это https://blog.instalator.ru/archives/47 на комп, который надо выключить, добавил в нее ссыль на shutdown.exe с параметром -h, в МД сделал сценарий с кодом:
Код: Выделить всё
getURL('http://192.168.1.10:8870/?cmd=hiber');
Код: Выделить всё
//
if (!isset($params['mac'])) {
$mac='ТУТ_MAC;
} else {
$mac=$params['mac'];
}
if (!function_exists('magicPacke')) {
function magicPacket($mac,$addr='255.255.255.255',$socket_number=7) {
//split up the mac address based upon the colons in the string
$addr_byte = explode(':', $mac);
$hw_addr = '';
for ($a=0; $a <6; $a++)
$hw_addr .=chr(hexdec($addr_byte[$a])); //convert the hex to its decimal equivalent, encode as a character, and repeat 16 times
$msg = str_repeat(chr(255),6); //FF in decimal is 255, which is then encoded as a char as with our mac address
for ($a = 1; $a <= 16; $a++)
$msg .= $hw_addr;
$s = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); //create our socket
if ($s == false) {
echo "Error creating socket!\n";
echo "Error code is '".socket_last_error($s)."'- " . socket_strerror(socket_last_error($s));
return false;
}
else {
// setting a broadcast option to socket:
//$opt_ret = socket_set_option($s, 1, 6, TRUE);
$opt_ret = socket_set_option($s,SOL_SOCKET,SO_BROADCAST,true);
if($opt_ret <0) {
echo "setsockopt() failed, error: " . strerror($opt_ret) ."\n";
return false;
}
if(socket_sendto($s, $msg, strlen($msg), 0, $addr,$socket_number)) {
socket_close($s);
return true;
}
else {
return false;
}
}
}
}
magicPacket($mac);
- Рейтинг: 1.16%
-
- Сообщения: 58
- Зарегистрирован: Чт сен 13, 2018 10:20 pm
- Благодарил (а): 30 раз
- Поблагодарили: 4 раза
Re: [Сценарий] Интеграция Wake On Lan
Для тех у кого WOL не работает. Пробуйте сменить порт с 7 на 9.
Вообще, 9 для WOL - классика. Не знаю почему везде 7 суют.
У меня на матери Asrock заработало только на 9 порту. Wireshark тоже по умолчанию в пресете WOL,порт 7 не слушает
Вообще, 9 для WOL - классика. Не знаю почему везде 7 суют.
У меня на матери Asrock заработало только на 9 порту. Wireshark тоже по умолчанию в пресете WOL,порт 7 не слушает
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 694 раза
- Контактная информация:
Re: [Сценарий] Интеграция Wake On Lan
Бывает комп не просыпается после выключения из винды. Решение есть- нужно обновить драйвер сетевой карты. Более подробно описал ситуацию в теме модуля WakeOnLan
http://majordomo.smartliving.ru/forum/v ... =wakeonlan
http://majordomo.smartliving.ru/forum/v ... =wakeonlan
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Re: [Сценарий] Интеграция Wake On Lan
Доброго дня! скажите пожалуйста а хоть один из методов представленных тут выводит компьютер из состояния "G3" (полное обесточивание)?
Кстати пользуюсь вот таким скриптом. Он взят с японского сайта https://poga.jp/?p=182
@echo off
:: Wake On Lan????????
:: ??OS:Windows7??
:: ?vMAC??????/2??????????????????????
set MacAd=AB-CD-EF-12-34-56
:: ?^??????????
:: ??????????????????????
set MacAd=%MacAd:-=:%
:: ??MAC?????WakeOnLan(????????????)
powershell "$dst=[byte[]]("""%MacAd%""".split(""":""") | ForEach-Object{[Convert]::ToInt32($_, 16)});$magicPacket=([byte[]](@(0xFF)*6)) + $dst * 16;$client=new-object System.Net.Sockets.UdpClient;$target=[System.Net.IPAddress]::Broadcast;$client.Connect($target,9);$client.Send($magicPacket,$magicPacket.Length)|out-null;$client.Close()"
:: ???pause?????????????????????????????
echo;
echo ??MAC?????%MacAd%??WOL??????????
echo ^(??WOL?????????????????^)
echo;
pause
exit /b 0
Кстати пользуюсь вот таким скриптом. Он взят с японского сайта https://poga.jp/?p=182
@echo off
:: Wake On Lan????????
:: ??OS:Windows7??
:: ?vMAC??????/2??????????????????????
set MacAd=AB-CD-EF-12-34-56
:: ?^??????????
:: ??????????????????????
set MacAd=%MacAd:-=:%
:: ??MAC?????WakeOnLan(????????????)
powershell "$dst=[byte[]]("""%MacAd%""".split(""":""") | ForEach-Object{[Convert]::ToInt32($_, 16)});$magicPacket=([byte[]](@(0xFF)*6)) + $dst * 16;$client=new-object System.Net.Sockets.UdpClient;$target=[System.Net.IPAddress]::Broadcast;$client.Connect($target,9);$client.Send($magicPacket,$magicPacket.Length)|out-null;$client.Close()"
:: ???pause?????????????????????????????
echo;
echo ??MAC?????%MacAd%??WOL??????????
echo ^(??WOL?????????????????^)
echo;
pause
exit /b 0
-
- Сообщения: 91
- Зарегистрирован: Чт окт 04, 2018 10:12 am
- Благодарил (а): 23 раза
- Поблагодарили: 13 раз
Re: [Сценарий] Интеграция Wake On Lan
Промучился пол дня и все таки добился. В общем вдруг кому пригодится. Выключаемый компьютер Win7. Если при выполнении команды shutdown через командную строку появляется ошибка ”Отказано в доступе (5)”, на удаленном компьютере нужно разрешить удаленный доступ к административным ресурсам. Для этого нужно Открыть редактор реестра (regedit.exe)
1. Перейти в ветку реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
2. Создать новый параметр типа DWORD (32-bit) с именем LocalAccountTokenFilterPolicy
3. Установить значение параметра LocalAccountTokenFilterPolicy равным 1
Ну или просто выполнить команду от имени администратора
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "LocalAccountTokenFilterPolicy" /t REG_DWORD /d 1 /f
Выключение должно по команде сработать сразу при условии, что разрешено удаленное принудительное выключение и отключен доступ с парольной защитой.
1. Перейти в ветку реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
2. Создать новый параметр типа DWORD (32-bit) с именем LocalAccountTokenFilterPolicy
3. Установить значение параметра LocalAccountTokenFilterPolicy равным 1
Ну или просто выполнить команду от имени администратора
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "LocalAccountTokenFilterPolicy" /t REG_DWORD /d 1 /f
Выключение должно по команде сработать сразу при условии, что разрешено удаленное принудительное выключение и отключен доступ с парольной защитой.
-
- Сообщения: 38
- Зарегистрирован: Пн мар 27, 2017 12:33 am
- Откуда: ДНР, Донецк
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: [Сценарий] Интеграция Wake On Lan
Подскажите пожалуйста, есть ли простой способ выключать ПК на линуксе удаленно. Есть ноутбук подключенный к МД серверу по воздуху. Задумка следующая: по команде "я пошел спать" МД опрашивает состояние датчиков и выключает все лишнее, в том числе ноутбук. Нашел сдесь решение но оно слишком сложное, может кто знает однострочное решение для подобной задачи. Заранее спасибо.