Показать полную графическую версию : Запуск bat файла на другой машине
Всем доброго времени суток.
Проблема в следующем.
Накатал батник который разрывает все сеансы терминальных пользователей по ID.
Использовал команду reset session <ID>.
После батник выполняет определенные действия которым мешали сеансы пользователей.
Теперь мне необходимо запустить батник на терминальном сервере удаленно. Поначалу решил сделать вызов батника из другого который располагается на моей машине.
То есть сделал скрытую шару и вызвал его, но естественно батник попытался оборвать сеансы на МОЕЙ машине где их нет, подскажите как мне решить данную проблему.
Заранее спасибо, с уважением CyMpak.
vasketsov
29-03-2003, 09:31
CyMpak
Ну и входи терминально и запускай его из сеанса.
Или из телнета :)
Добавлено:
Если из своего сеанса - свой сеанс закрывать не надо.
Еще вариант - добейся нужной работы явно указав запуск через cmd (что-то типа "cmd.exe /s batnik.bat") и потом эту строку запускай как службу (про srvany знаешь?) с любой NT-машины удаленно (через srvmgr или mmc)
vasketsov
Ну и входи терминально и запускай его из сеанса.
Или из телнета
Понимаешь поставлено условие чтобы все делалось одним кликом крысы, то есть определенный пользователь кликает скажем по ярлыку на рабочем столе после чего ярлык исчезает, а на удаленной машине разрываются все сеансы и запускаются процессы удаления и замены инфы в непрерывном цикле...
ну блин короче без сарказма, маразм это все конечно, но так надо...
Еще вариант - добейся нужной работы явно указав запуск через cmd (что-то типа "cmd.exe /s batnik.bat")
все полностью писал там, решения пока не нашел...
с любой NT-машины удаленно (через srvmgr или mmc)
пока парюсь mmc, можно поподробней про данный вариант ??
Добавлено:
Либо как мне научить батник не убивать свой же сеанс ?
-----------------------------------------------
reset session 1
reset session 2
reset session 3
reset session 4
reset session 5
reset session 6
reset session 7
reset session 8
reset session 9
reset session 10
reset session 11
reset session 12
reset session 13
reset session 14
reset session 15
reset session 16
reset session 17
reset session 18
reset session 19
reset session 20
rd /S /Q E:\dir\dir1\
xcopy E:\dir\dir2 E:\dir\dir1 /E /C /I /Q /H /R /K /O /X /Y
rd /S /Q E:\dir\dir1\
xcopy E:\dir\dir2 E:\dir\dir1 /E /C /I /Q /H /R /K /O /X /Y
exit
--------------------------------------------
вот упрощенный вариант, вот в чем проблема запуска батника из терминала... он просто тупо хлопает сессию со всеми процессами которые в ней запущены то есть когда он дойдет до reset session <ID запустившего> наступит кирдык его дальнейшему выполнению.
Добавлено:
Вариантом может быть следующий алгоритм:
1) Получение ID текущего пользователя.
2) Перед каждым сбросом сессии проверять ID сбрасываемого сеанса на совпадение с полученным в :1: ...
Но как это сделать пока не знаю.
vasketsov
29-03-2003, 23:50
CyMpak
Вариант со службой мне представляется более правильным и простым, несмотря на то, что Вы откразываетесь его понимать.
Итак, необходимо из Windows 2000 Resource Kit (что это такое - в поиск) взять утилиту srvany.exe и научиться ей пользоваться. Справка по ней входит в тот же Resource Kit. Надо посредством srvany запускать в качестве службы cmd.exe с параметрами командной строки /s batnik.bat (и то и другое пишется в реестр в известные места, тут главное строго следовать документации на srvany, благо, она вполне подробная, и не записать в имя исполняемого файла параметры его командной строки). Установить ее в качестве службы можно либо руками, либо через srvinstw в том же Resource Kit.
vasketsov
Спасибо, получилось... Сейчас добиваюсь того чтобы на машине где через mmc открывается список служб нужной машины, автоматически выбиралась и запускалась нужная мне служба после чего консоль закрывалась....
Кстати давай на ты ?!? :beer:
Еще раз спасибо.
vasketsov
31-03-2003, 08:06
CyMpak
Если командная строка не пугает, посмотри синтаксис sc.exe.
Для нее можно сделать соответствующий ярлык (а то net start нельзя указать имя сервера).
vasketsov
Сенкс, идею понял. Доустановил sc .
Вот только пока что "[SC] OpenService failed 1060"
или "[SC]StartService:OpenService 1060".
Но думаю с этим я справлюсь.
Спасибо за совет.
http:\\www.security.kz\cmpk\smile\friday.gif
Исправлено: CyMpak, 8:43 31-03-2003
ALFATRON
20-12-2005, 12:39
Прога юзает имена, которые можно получить командой getkeyname.
например строка sc getkeyname telnet даст ответ TlntSvr. вот ТЛНТСВР и надо юзать для стопа и пуска.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.