Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   поиск процесса и установка ПО (http://forum.oszone.net/showthread.php?t=346136)

dim_far 13-08-2020 09:22 2931011

поиск процесса и установка ПО
 
Всем добрый день!
Помогите с написанием bat, половину сделал, но потом затык :)
Логика выполнения следующая:
Доменная сеть.
1. Необходим bat , который будет на машинах смотреть запущен ли процесс забикса агента, если да, то все хорошо.
2. если агент не установлен, то:
создать папку c:\Zabbix, в нее скопировать с ПК 1 \\server1\folder1\zabbix на ПК 2 \\server2\C$\zabbix файлы : zabbix_agentd.exe , zabbix_agentd.win.conf и zabbix_install.bat
запустить от Администратора файл zabbix_install.bat

Busla 13-08-2020 11:02 2931029

Если установлен, но не запущен - тоже "все хорошо"?

Elven 13-08-2020 11:42 2931038

Опять костылесипеды... Есть же GPO, ну или ansible, если так уж хочется. Лично я склоняюсь к GPO, особенно учитывая что для zabbix агента есть msi.
Если строго по теме топика то проверить наличие процесса можно через tasklist:
Код:

tasklist /FI "imagename eq zabbix-agent.exe"
не знаю какое имя у процесса, поменять на правильное думаю понятно что нужно.
проверить наличие папки/файла и скопировать/создать можно приблизительно так:
Код:

if not exist "c:/zabbix" md "c:/zabbix"
if not exist "c:/zabbix/zabbix-agentd.exe" xcopy -Y -Q "\\server1\folder\zabbix\zabbix-agentd.exe" "c:/zabbix/zabbix-agentd.exe"
if not exist "c:/zabbix/zabbix_agentd.win.conf" xcopy -Y -Q "\\server1\folder\zabbix\zabbix_agentd.win.conf" "c:/zabbix/zabbix_agentd.win.conf"
if not exist "c:/zabbix/zabbix_install.bat" xcopy -Y -Q "\\server1\folder\zabbix\zabbix_install.bat" "c:/zabbix/zabbix_install.bat"

синтаксис и ключи нужно проверять/править, т.к. писал по памяти (лень виртуалку запускать).

dim_far 13-08-2020 12:01 2931042

здорово, есть от чего отталкиваться! Благодарствую!

уточнение, как будет выглядеть поиск именно процесса через tasklist с условием :если нет такого процесса, то ....?

чтото ввиде такого?
set ProcessName="zabbix_agent.exe"
TaskList /FI "ImageName EQ %ProcessName%" | Find /I %ProcessName%>null

Elven 13-08-2020 12:11 2931046

Смотреть errorlevel через тот же if. в if /? есть несколько неплохих примеров.
можно даже так попробовать
Код:

TaskList /FI "ImageName EQ %ProcessName%" && (
echo действия если процесс есть (т.е. errorlevel = 0)
) || (
echo действия если процесса нет (т.е. errorlevel != 0)
)

опять же errorlevel в tasklist не помню какие при каком результате выводятся, смотреть, проверять, править.

dim_far 13-08-2020 12:34 2931052

Цитата:

Цитата Elven
опять же errorlevel в tasklist не помню какие при каком результате выводятся, смотреть, проверять, править. »

благодарю!


Время: 00:34.

Время: 00:34.
© OSzone.net 2001-