Показать полную графическую версию : удаленная остановка сервисов, прибивание процессов в одном файле
registeruser1
21-04-2010, 02:16
...Приветствую всех!
Проблема есть, ваша помощь требуется... Проблема такая -
Пишу батник - удаленная остановка сервисов, прибивание процессов в одном файле...
Мне нужно что бы РЕЗУЛЬТАТЫ ОТРАБОТАННЫХ КОММАНД НЕ ОТОБРАЖАЛИСЬ В ОКНЕ...
@Echo Off
wmic /node:"comp_name" process where Name="notepad.exe" call terminate >nul
pause
По сути все хорошо. только если этот батник не находит процесса "notepad.exe" он начинает материться типа ERROR и там коды всякие, чего вообще на экран выводить не нужно!
То есть если нет такого процесса, и ладно - пошел дальше выполнять комманды - вот суть - БЕЗ ВЫВОДА В ОКНЕ ВСЯКИХ ОШИБОК!!!
Заранее благодарю...
registeruser1, вместо ">nul" поставить ">nul 2>nul" (добавить подавление ошибок)
registeruser1
21-04-2010, 06:58
registeruser1, вместо ">nul" поставить ">nul 2>nul" (добавить подавление ошибок) »
СУПЕР! Зачет!
Спасибо ОГРОМНОЕ...
Может подскажешь еще мне, как вывести на удаленной машине список не всех, а определенных процессов?
Вот код, но он выводит все запущенные прочессы и не на удаленной машине, а на локальной -
@Echo off
Title ВЫВОД ДЕРЕВА ПРОЦЕССОВ ПРИ ПОМОЩИ BAT ФАЙЛА
:LOOP
CLS
Echo.
Echo L - Load tree process
Echo D - Delete process
Echo Q - Exit
Echo.
Set var=
Set /P var="Load command: "
If /I "%var%"=="L" TaskList|More
If /I "%var%"=="Q" Exit /B
If /I "%var%"=="D" Call :KILL
GoTo LOOP
:KILL
Echo.
Set var=
Set /P var="Load PID (number) process:"
Set /A var=%var%+0
If %var% EQU 0 Exit /B
TaskKill /PID %var%
Pause >Nul
Exit /B
registeruser1, "определенных" по какому условию?
registeruser1
21-04-2010, 08:02
registeruser1, "определенных" по какому условию? »
У меня есть exe-файлы которые запущены как сервис на удаленной машине...
Соответственно при старте самого сервиса винда запускает сам exe файл.
Эти exe-шники имеют числовое имя, типа 45-78-52-65-42-71.exe
А закономерность этих файлов то что это мас-адреса, и начинаются они все с 00-80-9F-xx-xx-xx.exe
Вот, наверное по этому условию...
Я написал батник удаленного управления сервисами этой удаленной машины (что бы не заходить на нее), вот там нужно еще дописать эту фичу,
что бы знать что запущенно а что нет и вообще запущенн ли сервис (типа проверки выполненного действия).
Спасибо...
начинаются они все с 00-80-9F-xx-xx-xx.exe »
TaskList|FindStr /BIRC:"00-80-9F-[0-9][0-9]-[0-9][0-9]-[0-9][0-9].exe"
registeruser1
21-04-2010, 09:58
...Спасибо, клево!
Скажи, а как это все на удаленном компе можно смотреть-то?
Где имя компа удаленного прописывать-то?
Сетка доменная, права есть...
Благодарю...
Где имя компа удаленного прописывать-то? »
в справку хоть загляните для интереса "TaskList /?" ;)
TaskList /S CompName
registeruser1
21-04-2010, 13:51
...Делаю так -
tasklist -s COMP_NAME |FindStr /BIRC:"00-80-9F-xx-xx-xx.exe"
pause
И все, вроде ошибок нет, процесс указанный запущен, но ничего он на экран не выводит... Почему?
Я так понимаю что эта команда должна найти на удаленном компе перечисленные процессы и ТОЛЬКО ИХ вывести на монитор...
Обычной коммандой -
tasklist -s COMP_NAME
pause
- без проблем все выкладывает...
...извиняюсь если замучил ("как летун мы не очень", но очень хочется ))
процесс указанный запущен, но ничего он на экран не выводит... Почему?»
А какой именно процесс запущен? Процесс так и называется 00-80-9F-xx-xx-xx.exe ? И "xx" это именно указанные буквы или произвольные символы?
amel27 привел правильную запись с регулярными выражениями для, заданных Вами, условий задачи. Кстати Вы не уточнили, что "xx" это шестнадцатеричные числа и они кроме цифр могут иметь буквы "ABCDEF", если речь идет о MAC адресах.
"xx" это шестнадцатеричные числа и они кроме цифр могут иметь буквы "ABCDEF", если речь идет о MAC адресах »
угу, я вспомнил, хоть и с опозданием... надо расширить класс:
tasklist -s COMP_NAME| FindStr /BIRC:"00-80-9F-[0-9A-F][0-9A-F]-[0-9A-F][0-9A-F]-[0-9A-F][0-9A-F]\.exe"
или так:
tasklist -s COMP_NAME| FindStr /BIRC:"00-80-9F-..-..-..\.exe"
мы не очень", но очень хочется »
тогда заглядывайте почаще в справку "FINDSTR /?" ;)
registeruser1
21-04-2010, 16:05
Да, это МАС.
...Тут наверное надо как-то по вот этим 00-80-9F цифрам отбор от всех остальных процессов делать, то есть по маске выходит...
У всех этих процессов эти цифры одинаковые (все МАС у меня, их 12, начинаются с них).
Получается если команда находит по маске процессы начинающиеся с 00-80-9F - она выводит их ВСЕ КОТОРЫЕ У КОТОРЫХ ЭТИ ЗНАЧЕНИЯ СОВПАДАЮТ...
Вот так наверное...
Другими словами -
Есть несколько ЗАПУЩЕННЫХ процессов на удаленной машине -
00-80-9F-54-78-51.exe
00-80-9F-45-82-35.exe
00-80-9F-25-46-81.exe
00-80-9F-41-33-29.exe
Я удаленно их прибиваю командой -
wmic /node:"COMP_NAME" process where Name="00-80-9F-45-82-35" call terminate
...и мне нужно после этой команды, та команда которая ПРОВЕРИТ оставщиеся запущенные процессы ТОЛЬКО ИЗ ВЫШЕ УКАЗАННЫХ (А НЕ ВСЕХ ЧТО ЗАПУЩЕННЫ НА УДАЛЕННОМ КОМПЕ), и выдаст результат
на экран.
Таким образом если процесс был успешно убит, то после проверки ЭТОЙ командой (ПО МАСКЕ 00-80-9F) она выдаст на экран только эти 3 АКТИВНЫХ процесса в место четырех которые были -
00-80-9F-54-78-51.exe
00-80-9F-25-46-81.exe
00-80-9F-41-33-29.exe
Это для того что бы удостоверится что процесс на самомделе выгружен и не выполняется и для обзора оставшихся активных процессов...
Все это в одном батнике нужно...
Ну вот, я думаю что все по полкам разложил, больше уже не знаю как объяснить...
Заранее спасибо всем откликнувшимся...
registeruser1
21-04-2010, 16:26
asklist -s COMP_NAME| FindStr /BIRC:"00-80-9F-..-..-..\.exe" »
Супер, этот код работает... :up
Но почему-то он отображает только один процесс, а их там (я посмотрел) на данный момент висит 4...
И почему-то "пресс ани кей" с верху а не с низу -
@Echo off
tasklist -s COMP_NAME| FindStr /BIRC:"00-80-9F-..-..-..\.exe"
pause
registeruser1, примерный порядок отладки кода:
1. вывод списка процессов в файл (который при желании можно выложить тут):
tasklist -s COMP_NAME >tasklist.log
2. проверка работы фильтра на файле:
<tasklist.log FindStr /BIRC:"00-80-9F-..-..-..\.exe"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.