У нас есть около десяти клиентских компьютеров, от Windows XP до Windows 7, на которых есть небольшая программа, которая запускается в трее. Эта программа должна быть запущена все время, и иногда она либо дает сбой, либо пользователь выходит из программы. Мы хотели бы иметь возможность проверять каждый час или около того, чтобы видеть, работает ли эта программа. Если он не запущен, его следует запустить.
Я попытался использовать PowerShell на одном из наших серверов, чтобы получить процесс с удаленного компьютера и, если он не нашел его, запустить его. Но это не удается, потому что он не может запустить процесс как интерактивный пользователь.
Я попытался настроить задачу в планировщике задач, но планировщик задач Windows XP не очень хорош или настраивается.
Мы хотели бы, чтобы администрирование было максимально простым. Как лучше всего это сделать?
Планировщик задач может это сделать, проблема в том, что он не уведомит вас в случае сбоя. Но вы можете собрать командный файл и tlist (бесплатный инструмент от Microsoft) чтобы увидеть, какие процессы запущены. Если командный файл не видит, что он работает в соответствии с tlist, вы просто запускаете его. Если он найден, вы используете перейти, чтобы пропустить все и выйдите из командного файла.
Не могли бы вы использовать sc.exe запустить исполняемый файл как службу?
Если вы еще не запускаете Nagios, я был бы склонен создать командный файл на машине мониторинга, который будет запускать pslist через команду find на каждой из клиентских машин. Если вы не видите имени исполняемого файла, он не запущен. Вы можете использовать Blat для отправки вам предупреждений.
Если вы все же запустите Nagios, вы можете запустить на каждом клиенте то же самое, что и проверка NSClient ++, и собрать результаты с помощью Nagios.
Есть ли в вашей инфраструктуре nagios или какая-либо система мониторинга? ? Если да, то следить за ним довольно просто.
В противном случае вы можете использовать snmp для выполнения этой работы.