Иногда возникает необходимость перезагрузить сервер удалённо. Это возможно сделать с помощью специального SMS-сообщения и команды shutdown. Перезагрузка при помощи SMS-сообщения позволяет перезагрузить сервер даже при отсутствии подключения к локальной сети или сети Internet. Устройство NetPing будет получать SMS-сообщения и инициализировать процесс перезагрузки сервера, а также уведомлять SMS-сообщением о начале и о завершении перезагрузки.
Для реализации данной функции необходимо наличие следующего оборудования и программного обеспечения:
- Компьютер под управлением ОС Windows 7 или Windows 8. Возможно использование серверных вариантов операционных систем семейства Windows – Windows Server 2003, Windows Server 2008, Windows Server 2012;
- Брандмауэр операционной системы (или антивирусных средств, если такие используются) настроен на прохождение ICMP пакетов;
- Установленный компонент Windows – PowerShell;
- Одно из устройств — NetPing 8/PWR-220 v3/SMS, NetPing 4/PWR-220 v3/SMS, NetPing 2/PWR-220 v2/SMS, NetPing 2/PWR-220 v1/SMS.
В примере будем использовать следующие установки:
- IP адрес устройства NetPing – 192.168.0.100;
- Имя пользователя – visor;
- Пароль пользователя – ping;
- Community записи устройства NetPing – ping1;
- IP адрес сервера – 192.168.0.254;
- Путь к утилите shutdown.exe – c:\windows\system32\shutdown.exe;
- Под данную функцию будем использовать первую IO линию.
Логика работы
При необходимости перезагрузки компьютера/сервера на устройство NetPing отправляется SMS-сообщение с командой, по которой устройство переводит одну из линий ввода/вывода в состояние логической «1». Для компьютера/сервера это признак необходимости произвести перезагрузку.
На компьютере по определенному расписанию производится запуск сценария PowerShell, который проверяет состояние линии ввода/вывода на устройстве NetPing. При логической «1» происходит перезагрузка компьютера.
Предварительная настройка устройства NetPing
Для управления устройством посредством SMS-сообщений необходимо присвоить «Community записи» в «Настройках доступа». Данная настройка производится в разделе «НАСТРОЙКА» web-интерфейса устройства NetPing;
Настроить номер мобильного телефона, на который устройство NetPing будет отправлять информационные SMS-сообщения. Данный параметр настраивается в разделе «SMS» web-интерфейса. Номер телефона вводится в международном формате.
Указать IP адрес компьютера, для работы «пингера». Это позволит получать информационное SMS-сообщение о начале процесса перезагрузки и его завершении. Также в настройках «СОБЫТИЯ ДЛЯ ОТПРАВКИ SMS-УВЕДОМЛЕНИЙ» необходимо отметить пункт «Пропадание/восстановление связи с указанным IP (пингер)». Эти две настройки производятся через раздел web-интерфейса «SMS».
Последняя настройка – необходимо перевести режим работы линии ввода/вывода в состояние «выход». Данная настройка производится в разделе «ВВОД-ВЫВОД» web-интерфейса. Здесь можно произвести настройку любой одной линии, которая не задействована под другие функции.
Используемый сценарий PowerShell
Сценарий, который производит опрос состояния линии ввода/вывода и производит перезагрузку компьютера при включенном устройстве, выглядит следующим образом:
$webclient = New-Object System.Net.WebClient
$webclient.Credentials = New-Object System.Net.NetworkCredential(‘visor’,’ping’)
$webpage = $webclient.DownloadString(‘http://192.168.0.100/io.cgi?io1’)
If($webpage | Select-String «‘ok’, -1, 1» –Quiet){$webpage = $webclient.DownloadString(‘http://192.168.0.100/io.cgi?io1=0’)
Start-Process –FilePath «c:\windows\system32\shutdown.exe» –ArgumentList ‘/r /t 0 /f’}
Вторая строка сценария определяет имя пользователя и его пароль, необходимые для доступа к устройству NetPing.
Третья строка содержит запрос состояния линии ввода/вывода.
Пятая строка необходима для сброса линии ввода/вывода в состояние логического «0». В противном случае, компьютер будет перезагружаться в непрерывном цикле.
Поскольку в планировщике заданий операционной системы Windows выполнить непосредственно сценарий PowerShell не удастся, необходимо подготовить пакетный файл.
Для этого сценарий PowerShell сохраняется в отдельном файле. Например, c:\restart.ps1
Создается файл c:\restart.vbs, со следующим содержанием:
Set objShell = CreateObject(«Wscript.Shell»)
objShell.Run(«powershell.exe -noninteractive -noprofile c:\ restart.ps1»), 0, false
В конце второй строки: 0 — запускаться в скрытом режиме, false — не ждать окончания работы сценария PowerShell.
В планировщике Windows создаем новое задание, в котором в качестве исполняемого файла выбирается пакетный файл c:\restart.vbs и настраивается периодичность его выполнения.
По умолчанию выполнение сценариев PowerShell в системе запрещено. Так как в скриптах может находится вредоносный код, который может нанести вред системе. Для тестирования скриптов можно отключить проверку выполнения для локальный скриптов. Для этого запускаем консоль PowerShell от имени администратора и вводим команду: Set-ExecutionPolicy RemoteSigned Подробнее здесь: http://did5.ru/it/windows/powershell/powershell-vypolnenie-skriptov-zapreshheno-dlya-dannoj-sistemy.html |
Команды, используемые в SMS-сообщениях
Для инициализации процесса перезагрузки компьютера/сервера на телефонный номер устройства NetPing необходимо отправить команду:
NETPING L1+ ping1
Если отправленная команда успешно выполнена, приходит SMS-сообщение следующего содержания:
NP DONE L1+
Поскольку после начала процесса перезагрузки компьютера ICMP пакеты не будут достигать своей цели, сработает пингер и отправит SMS-сообщение следующего содержания:
PINGER STATUS: FAILED
После загрузки компьютер вновь начинает отвечать на ICMP запросы, и пингер отправит следующее сообщение:
PINGER STATUS: OK
Процесс перезагрузки компьютера завершён.
Подробную информацию об использовании SMS-команд можно найти в документе «Описание встроенного ПО для вашего устройства».