Gastello007

 
<<< Назад

Отключение и включение компьютера удаленно

Заметка о том как включить и выключить домашний компьютер удаленно

И так для решения данной задачи нам надо установить и настройить на сервере Мажордомо следующее:
1) Если Linux то нужно установить клиент Samba и дать права пользователю www-data на исполнение файла net;
2) Если у вас Windows то поздравляю у вас все есть.
В самом мажоре нужно установть модуль WOL

И так начем.

Установим sambа которая не раз нам еще пригодится.
(Инструкция подойлет под debian подобные системы)

Обновляем репозитории и ситсему

sudo apt update
sudo apt upgrade

Устанвливаем sambа

sudo apt install samba samba-common-bin

Создаем папку

mkdir /home/имя пользователя/papka

Даем прва на папку

sudo chmod -R 777 /home/имя пользователя/papka

Делаем бэкап файла конфигурации

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

Делаем свой файл конфигурации

sudo nano /etc/samba/smb.conf

И вствяляем в него вот это

[global]
workgroup = WORKGROUP 
netbios name = OrangePi
server string = share
security = user  
map to guest = bad user
browseable = yes
wins support = yes 
[istarik]
path = /home/имя пользователя/papka
writeable = yes
browseable = yes
guest ok = yes

Расшифрофка фонфига

workgroup = WORKGROUP (Рабочая група сети виндовс должны совпадать
netbios name = OrangePi имя сервера (так он будет отображаться в сетевом окружении)
server string = share название сервера
map to guest = bad user если пользователь Samba существует в системе и введен неверный пароль, то вход этого пользователя отклоняется, если пользователя не существует, тогда ему присваивается статус гость
browseable = yes   определяет будет ли наша шара видна внутри сети
wins support = yes нужно если в сети еслть Vista ил Win 7
[istarik]
path = /home/имя пользователя/papka путь до папки
writeable = yes   разрешаем запись
browseable = yes смотри выше ( но этоу же для конкретной папки)
guest ok = yes разрешаем  гостевой достпу 

Перезапускаем samba

systemctl restart samba (или smb или smbd все зависит от вашей системы)

Далее даем права на исполненеи файла net
Данный подход для разрешения запуска НЕ ПРАВИЛЬНЫЙ!
Но к сожалению при использовании стандартного подхода мажор не смог запустить net.

sudo chmod u+s `which /usr/bin/net`

Теперь настроим windows который будем выключать (Пример для win 10)

Откройте окно «Выполнить», нажав комбинацию клавиш «Win+R» на компьютере, которым вы хотите управлять. Введите «gpedit.msc» (без кавычек) и подтвердите нажатием «Enter».

В открывшемся окне в разделе «Конфигурация компьютера» перейдите к строке «Конфигурация Windows» и нажмите на строке «Параметры безопасности».

В правой части зайдите в «Локальные политики | Назначение прав пользователя» и дважды щелкните по «Принудительное удаленное завершение работы». Внизу нажмите на кнопку «Добавить пользователя или группу…» и в поле добавления имен напишите «имя пользователя» без кавычек которому хотите дать права на выключение, если будете презагружать из под Win то пишите "Все" .
Для презагрузки из под Linux gользователь windiws должен иметь пароль.

И так софт установли права дали. Поехали дальше.

Включаем системник. (в настройках биоса в разделе питания должно быть разрешено включение по сети)

В модуле WOL нажимаем Discovery находим свой комп и будим его нажатием на мак адресс.
( пример скрипта для мажора)

    include_once(DIR_MODULES . 'wol/wol.class.php');
$wake = new wol();
$wake->WakeOnLan('192.168.1.255','1c:1b:0d:ea:4d:02'); 

Где '192.168.1.255' адес вашей сети ('192.168.0.255', '192.168.2.255' и т.д)

Выключение системника из Linux
( пример скрипта для мажора)

shell_exec("/usr/bin/net rpc shutdown -t 300 -f -C otklu4enie 4erez 300 sek -U user%1111 -I 192.168.1.64");

Где shell_exec php вызвает исполняемый файл net по адрессу /usr/bin/net
Где rpc условие запуска net
Где shutdown отправляемая команда на выключение
Где -t параметр shutdown который определяет время в секундах через котрое отключится компьютер
Где -C выводится сообщение на отключаемом компьютере
Где otklu4enie 4erez 300 sek само сообщение (пишу транслитом ибо могут быть глюки)
Где -u параметр shutdown определяет, что выключение произойдет от имени определнного пользователя
Где user%1111 логин user, а пароль 1111
Где -I параметр shutdown который определяет что подключение к компьютеру будет проходить по IP адерссу
Где 192.168.1.64 сам IP адресс

Выключение системника из Windows
( пример скрипта для мажора)

shell_exec(shutdown /t 300 /f /C otklu4enie 4erez 300 sek /m 192.168.1.64"); 
Либо этой командой 
shell_exec(shutdown /t 300 /f /C otklu4enie 4erez 300 sek /m \\\\192.168.1.64"); 

Где /m параметр shutdown с указанием адресса конечного компьютера.

Также можно прицепить управление выключением/включением компа к яндекс алисе но это совсем другая история...

Обсуждение (5) (6)

Смотрите так же:
19.10.2020 Функции питона в альфа версии Мажордомо
09.10.2020 Функция getObjectsByClass для Phyton3 ver.2 Beta (обновил)
24.10.2019 Управление телевизором на Android TV (linux)
03.09.2019 Устройства Онлайн пинг Синего зуба (LINUX/WIN)

Москва, Россия

На форуме: Gastello007