You are here

Пишем BAT(батник) файл для запуска и остановки службы в Windows

Linux: 

Возникла необходимость автоматизировать для пользователей запуск и остановку определенной службы Windows. Самое просто на первый взгляд, создание батника или Bat файла Windows. Есть и другие варианты, но решил сделать именно через батник.

Пишем BAT(батник) файл для запуска и остановки службы в Windows

Вроде все не сложно, но как всегда в Windows все не так просто, или просто, но глупо.

1. Задача:
В системе есть программа, и её Бета-версия. Запуск основной, по ярлыку. Запуск Бета-версии только после запуска службы, по окончанию, отключение этой службы. Ничего сложного нет, зайти в службы и в зависимости от задачи "включить/выключить". Но вот для некоторых сотрудников это целая проблема. Поэтому пишем батник!

2. Структура батника. После поиска структуры батника, пришел к этому варианту:


net stop [имя службы в Windows](остановить службу)

net start [имя службы в Windows](запустить службу)

3. Меняем отражение расширений файлов. По умолчанию в Windows не отражаются расширения файлов. Правим на примере Windows 10:
- открываем любую папку;
- вверху вкладка "Вид", "Параметры", "изменить параметры папок и поиска";
- вкладка "Вид", спускаемся до поля "Скрывать расширения для..." - снимаем галку.

Теперь файлы, в частности на рабочем столе имеют вид (на примере TXT файла):
Было "Файл", Стало "Файл.txt"

4. Создаем файл батника. Создаем "txt" файл и переименовываем его в "Запуск службы.txt". Открываем, пишем наш Bat файл:


net start [имя службы в Windows]



Где взять имя службы?
Открываем службы, находим нужную, открываем и смотрим поле "Имя службы":

Пишем BAT(батник) файл для запуска и остановки службы в Windows

В итоге у нас будет:


net start AtolLicSvc(Если служба AtolLicSvc, у вас ваш вариант)

Сохраняем и переименовываем файл с "Запуск службы.txt" в "Запуск службы.bat"

5. Проверяем работу службы. Казалось бы все! Но нет! Это же Windows! Выскакивает окно запуска службы и пропадает. А служба как спала так и спит. Что не так? Все дело в правах админа. Вроде не сложно, но пояснять сотрудникам, запускайте с правами админа, слишком сложно для их понимания! Читаем по быстрому инфу "как запустить bat файл от имени админа автоматический?", ответ:

ничего сложного...
- "правой кнопкой мыши на файле", "свойства";
- вкладка "ярлык", ... эмм... а где она? О_о

6. Вносим правки, создаем ярлык

Логично, вкладки нет, это не ярлык! Создаем из нашего батника "Запуск службы.bat" "Ярлык": убираем батники подальше от рук пользователей, допустим на диск D. Правой кнопкой мыши на батнике: "отправить", "рабочий стол (создать ярлык)". И вот уже на ярлыке:

- "правой кнопкой мыши на ярлыке", "свойства";
- вкладка "ярлык", кнопка "Дополнительно";
- ставим галку "запуск от имени администратора".

7. Повторный запуск службы через BAT файл.
После этих манипуляций, если запустить ярлык "Запуск службы.bat — ярлык", служба стартует, согласно структуре в файле "net start AtolLicSvc"

Пишем BAT(батник) файл для запуска и остановки службы в Windows

Для батника который будет останавливать службу, все тоже самое. И да, вариантов решения задачи много, спорить не буду, но описал вариант решения который применил сам.



Источник: http://linuxsql.ru