|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] батник для управления сервисами |
|
CMD/BAT - [решено] батник для управления сервисами
|
Пользователь Сообщения: 132 |
Профиль | Отправить PM | Цитировать ...Люди добрые помогите!
Знаю что есть тут гуру по командам для батников... Делаю батник для управления сервисами и есть проблемы... @echo off echo. echo ******************************************************************************* @echo. echo PLEASE WAIT... SCANING SERVICES: @echo. echo ******************************************************************************* echo. setlocal enabledelayedexpansion set server=\\server_name ping -n 1 %server:~2% 1>nul 2>nul || ( echo NO RESPOND FROM SERVER, EXITING... & pause & exit ) title Scanning set "sernum=100" for /f "tokens=1*" %%a in ('sc %server% query state^= all') do ( if /i .%%a equ .SERVICE_NAME: set "_servicen_=%%b" && title Scanning %server%: %%b if /i .%%a equ .DISPLAY_NAME: echo %%b | find /i "Windows" 1>nul && ( echo %%b set /a sernum += 1 set "_service_!sernum:~1!=!_servicen_!" set "_serviced_!sernum:~1!=%%b" ) ) :display TITLE WELCOME cls if errorlevel 0 @echo echo. echo ******************************************************************************* @echo. echo STARTING/STOPPED SERVICES MENU: @echo. echo ******************************************************************************* echo. for /f "tokens=2,3* delims=_=" %%a in ('set _service_') do ( for /f "tokens=4" %%s in ('sc %server% query %%b ^| findstr /r /b /c:" *STATE " ') do ( set "_displ_=!_serviced_%%a! " echo.%%a !_displ_:~0,58! %%s ) ) echo. TITLE WELCOME set "reply=0" set /p reply="Please select number for start/stop and press Enter (0=RESCAN): " set "reply=00%reply: =%" set "reply=%reply:~-2%" if %reply% == 00 goto :display if not defined _service_%reply% echo Service %reply% not defined & pause & exit sc %server% query !_service_%reply%! | findstr /r /b /c:" *STATE " | 1>nul find "RUNNING" && 1>nul sc %server% stop !_service_%reply%! || 1>nul sc %server% start !_service_%reply%! goto :display Но, запускает он сервис только в том случае если "STATUS_TYPE" (тип запуска) НЕ "DISALED", а у меня на всех мне нужных сервисах именно "DISALED" !!! Задача не из легких конечно, потому на гуру командной строи и надеюсь... Как видите все построенно на переменных. Никакого ручного прописывания названий сервисов НЕТ! В этом весь смысл... Нужно именно этого и придерживаться. СУТЬ ЗАДАЧИ - ЗАПУСК СЕРВИСА Значит нужно что бы после сканирования всех сервисов и выдачи результатов поиска по установленному фильтру (в данном случае это отфильтрованные сервисы "Windows"), вводя номер сервиса сначала тип запуска сервиса из состояния "DISABLED" переводился в состояние "AUTO_START", потом запускался... ОСТАНОВКА СЕРВИСА Вводя номер сервиса сначала тип запуска сервиса из состояния "AUTO_START" переводился в состояние "DISABLED", потом останавливался... ВСЯ ПРОБЛЕМА ИМЕННО В ПЕРЕМЕННЫХ. Очень надеюсь на вашу помощь, профи!... |
|
Отправлено: 23:57, 05-05-2010 |
Ветеран Сообщения: 1272
|
Профиль | Отправить PM | Цитировать |
Отправлено: 13:16, 06-05-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 132
|
Профиль | Отправить PM | Цитировать El Sanchez Спасибо, это работает...
Но в моем случае MyService не нужно что бы в ручную был прописан... В том то и дело что цель именно что бы он по переменным ( ТИПА - sc %server% query !_service_%reply%! ) смотрел какой сервис остановился или запустился в том сервисе и ставить тип запуска "AUTO_START" или "DISABLED". Просто я всех команд не знаю и с переменными не работал ни когда... Я же код выложил, скопируй его, сделай расширение BAT, потом выставь службе "Windows Installer" тип запуска "DISABLED" и этим батником запусти ее. Я думаю что все будет ясно дальше... Она не запустится - потому что тип запуска именно "DISABLED". Хорошо, поставлю не много по иному вопрос для ясности - КАК НЕ ПРОПИСЫВАЯ В РУЧНУЮ ИМЕНА СЕРВИСОВ ПОМЕНЯТЬ ТИП ЗАПУСКА С "DISABLED" НА "AUTO_START" ПЕРЕД ЗАПУСКОМ В ЗАПУСКАЕМОЙ, И С "AUTO_START" НА "DISABLED" ПЕРЕД ОСТАНОВКОЙ В ОСТАНАВЛИВАЕМОЙ В ДАННЫЙ МОМЕНТ СЛУЖБЕ В МОЕМ КОДЕ...??? |
Последний раз редактировалось registeruser1, 06-05-2010 в 17:09. Отправлено: 13:58, 06-05-2010 | #3 |
Ветеран Сообщения: 1272
|
Профиль | Отправить PM | Цитировать registeruser1,
Я думал вы самостоятельно замените строки... Короче, предпоследнюю строку заменить на sc %server% query !_service_%reply%! | findstr /r /b /c:" *STATE " | 1>nul find "RUNNING" && (1>nul sc %server% stop !_service_%reply%! & sc %server% config !_service_%reply%! start= disabled 1>nul 2>&1)||(sc %server% config !_service_%reply%! start= auto 1>nul 2>&1 & 1>nul sc %server% start !_service_%reply%!) |
Отправлено: 18:30, 06-05-2010 | #4 |
Пользователь Сообщения: 132
|
Профиль | Отправить PM | Цитировать El Sanchez
...Спасибо огромное! Я уж думал что не получится. Еще раз благодарю! Может за одно подскажете, как можно надписи в одной сторке батника раскрасить несколькими цветами? |
|
Отправлено: 19:41, 06-05-2010 | #5 |
Ветеран Сообщения: 1272
|
Профиль | Отправить PM | Цитировать Цитата registeruser1:
Текст скрипта - в текстовом редакторе типа Word Вывод в консоль - никак. Только все вместе одним цветом (см. команду color /?). P.S. Такое возможно в PowerShell. |
|
Отправлено: 20:08, 06-05-2010 | #6 |
Пользователь Сообщения: 132
|
Профиль | Отправить PM | Цитировать Цитата El Sanchez:
Еще вопрос такой - нужно примапить диск и сразу что бы название прописано было для него. Что куда дописать нужно? |
|
Отправлено: 21:26, 06-05-2010 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата El Sanchez:
|
||
Отправлено: 01:55, 07-05-2010 | #8 |
Пользователь Сообщения: 132
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 06:45, 07-05-2010 | #9 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Iska:
статья: Using ANSI sequences to enhance batch files |
|
Отправлено: 13:24, 07-05-2010 | #10 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Батник для подключения к админским шарам. | Creativie | Скриптовые языки администрирования Windows | 13 | 05-05-2014 12:54 | |
батник для NTOS | admart | Лечение систем от вредоносных программ | 2 | 17-10-2008 23:36 | |
Проблема с сервисами | CTEPBA | Microsoft Windows NT/2000/2003 | 1 | 19-01-2006 08:51 | |
батник для выключения win98 | mikesip | Microsoft Windows 95/98/Me (архив) | 4 | 21-12-2004 19:01 | |
Батник для запуска отчета в 1С | Zlohobbit | Программирование и базы данных | 2 | 26-02-2004 11:44 |
|