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

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

НариманБ 02-02-2016 08:13 2601605

Команда для удаленного запуска bat файла с повышением прав.
 
Добрый день!

У меня такая ситуация: У меня есть около 50 серверов находящихся в одном домене. Я администратор домена.
Мне необходимо переустановить zabbix_agent, он существует на серверах как служба.
Естественно, я не хочу заходить на каждый сервер и вручную это все делать.
Я сделал пару батников:

Первый копирует необходимый дистрибутив на нужный сервер:
xcopy "C:\zabbix_distr\bin\win64\dev\zabbix_sender.dll" "\\192.168.12.11\c$\Program Files\Zabbix\\bin\win64\dev" /z /y
xcopy "C:\zabbix_distr\bin\win64\dev\zabbix_sender.lib" "\\192.168.12.11\c$\Program Files\Zabbix\bin\win64\dev" /z /y
xcopy "C:\zabbix_distr\bin\win64\zabbix_agentd.exe" "\\192.168.12.11\c$\Program Files\Zabbix\bin\win64" /z /y
xcopy "C:\zabbix_distr\bin\win64\zabbix_get.exe" "\\192.168.12.11\c$\Program Files\Zabbix\bin\win64" /z /y
xcopy "C:\zabbix_distr\bin\win64\zabbix_sender.exe" "\\192.168.12.11\c$\Program Files\Zabbix\bin\win64" /z /y
xcopy "C:\zabbix_distr\uninstall_zabbix.bat" "\\192.168.12.11\c$\Program Files\Zabbix\conf" /z /y

Второй удаляет этот забикс агент:
cd c:\program files\zabbix\bin\win64
zabbix_agentd.exe -d --uninstall

и третий устанавливает:
cd c:\program files\zabbix\bin\win64
"c:\program files\zabbix\bin\win64\zabbix_agentd.exe" --config "c:\program files\zabbix\conf\zabbix_agentd.conf" --install
"c:\program files\zabbix\bin\win64\zabbix_agentd.exe" --config "c:\program files\zabbix\conf\zabbix_agentd.conf" --start

Но у меня не получается удаленно запустить бат фалы по установке и удалению командой start \\192.168***... и так далее,
так как чтобы установить/удалить службы, нужно выполнять с повышением прав.

И вот, я не могу разобраться, как же это сделать удаленно с помощью bat файла..

НариманБ 02-02-2016 08:15 2601606

И, кстати, если знаете команду по копированию одной директории с имеющимися внутри файлами и папками, буду рад =)
А то мне кажется копирование каждого файла немного корявым.. =)

Elven 02-02-2016 09:10 2601611

Возможно команда не выполняется не из-за недостатка прав (хоть я возможно и не прав), попробуйте вместо
Код:

start \\192.168.*** ...
запустить вот так:
Код:

pushd \\192.168.***\
start ...
popd

если же повышение прав необходимо то помогут GPO+шедулер.
через GPO раскидываем файлы и через него же создаем задачу в шедулере с галочкой "Выполнять с наивысшими правами".

НариманБ 02-02-2016 10:01 2601623

К сожалению оба варианта не помогли..
По первому способу:
При выполнении этого кода открывается cmd.exe от моего доменного имени.

По второму способу:
Задание выполняется. Пишет, что завершено успешно.
Но служба все еще существует и в "результатах последнего запуска" код (0x1).

Elven 02-02-2016 10:10 2601627

Цитата:

Цитата НариманБ
открывается cmd.exe от моего доменного имени. »

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

pushd \\IP_удаленной_машины\имя_папки\
start имя_программы_или_скрипта.расширение
popd

так запускаете?

Цитата:

Цитата НариманБ
Задание выполняется. Пишет, что завершено успешно.
Но служба все еще существует и в "результатах последнего запуска" код (0x1). »

в батнике, часом, нет относительных ссылок?

НариманБ 02-02-2016 11:53 2601661

Цитата:

Цитата Elven
в батнике, часом, нет относительных ссылок? »

В батнике вот такой код:
cd c:\program files\zabbix\bin\win64
zabbix_agentd.exe -d --uninstall


Цитата:

Цитата Elven
pushd \\IP_удаленной_машины\имя_папки\
start имя_программы_или_скрипта.расширение
popd »

Пишу вот такой:
pushd \\192.168.12.11\c$\Program Files\Zabbix\bin\win64\
start "C:\Program Files\Zabbix\uninstall_zabbix.bat"
popd


После него выходит окно cmd с предложением ввести следующие команды с места -
Z:\Program Files\Zabbix\bin\win64>

Как я понимаю, подвязывается диск С сервера, где должно выполниться удаление, к серверу откуда запускаю батник, и ему дается буква Z.
Ладно, но если ввести в этом окне команду zabbix_agentd.exe -d --uninstall,
то он выдает ошибку, что "zabbix_agentd.exe" не является внутренней или внешней командой... и так далее.

Elven 02-02-2016 12:54 2601684

Код:

pushd \\192.168.12.11\c$\Program Files\Zabbix\bin\win64\
start uninstall_zabbix.bat
popd


НариманБ 02-02-2016 14:23 2601719

Цитата:

Цитата Elven
:
pushd \\192.168.12.11\c$\Program Files\Zabbix\bin\win64\
start uninstall_zabbix.bat
popd »

В этом варианте ругается на то, что "uninstall.bat" не является командой =(

Foreigner 02-02-2016 14:46 2601730

НариманБ, Про кавычки не забыли вокруг пути с пробелами? Подозреваю, что сетевой диск просто не монтируется по этой причине.
Код:

pushd "\\192.168.12.11\c$\Program Files\Zabbix\bin\win64"

Elven 02-02-2016 14:51 2601734

Foreigner, pushd нормально пробелы переваривает - проверял несколько раз.
Остаются только два варианта: либо файла нету, либо в его имени в start допущена ошибка.

Foreigner 02-02-2016 15:42 2601749

Цитата:

Цитата Elven
pushd нормально пробелы переваривает »

Странно, действительно переваривает. Еще есть соображение, надо запускать через start /wait, чтобы диск гарантированно удалялся только после завершения сессии (батника). Поэтому даже popd в принципе не нужен.

НариманБ 03-02-2016 07:06 2601991

Цитата:

Цитата Foreigner
Еще есть соображение, надо запускать через start /wait, чтобы диск гарантированно удалялся только после завершения сессии (батника). »

С /wait уже есть продвижения, запускается батник корректно, но выходит ошибка:
ERROR: cannot connect to Service Manager, что говорит о том, что батник был запущен от моего имени, без повышения прав

Elven 03-02-2016 11:30 2602088

Цитата:

Цитата НариманБ
без повышения прав »

Батник запускался просто руками или через планировщик? Сам по себе он не дает повышения прав, при запуске через планировщик нужно отметить "Выполнять с наивысшими правами".

НариманБ 03-02-2016 12:43 2602129

Цитата:

Цитата Elven
"Выполнять с наивысшими правами". »

Так я так пробовал. Задание отрабатывается с ошибкой (0х1).. писал в посте выше

AleksandrG 21-04-2016 15:26 2628358

Вложений: 2
а зачем так сложно?
xcopy позволяет копировать папками
xcopy /E /I C:\zabbix_distr\ "\\192.168.12.11\c$\Program Files\Zabbix" примерно так
а запустить нужный файл на выполнение можно ч\з утилиты PsTools. выполнятся будет от system
а если сделать SFX архив с параметрами запуска Zabbix.exe.sfx, то можно ниче не копировать
PsExec и скопирует и запустит
psexec [\\компьютер[,компьютер2[,...] | @файл-список_серверов -c -d Zabbix.exe.sfx


Время: 11:57.

Время: 11:57.
© OSzone.net 2001-2025