Как написать батник для перезапуска службы
Перейти к содержимому

Как написать батник для перезапуска службы

  • автор:

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

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

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

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

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

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

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

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

Как написать батник для перезапуска службы

Скрипт останавливает службу «service-name».
Убивает процесс «service-name.exe», если такой есть.
Запускает службу обратно в работу.
В промежутках между командами задана пауза, чтобы дать службе/процессу время на завершение.

REM CODEPAGE Win 866 (OEM)

REM Останавливаем службу
NET stop service-name

REM Ждём
TIMEOUT /T 120 /NOBREAK

REM Проверяем наличие процесса службы (просто для информации)
TASKLIST /FI «IMAGENAME eq service-name.exe»

REM Убиваем службу. На случай, если она зависла и не останавливается
TASKKILL /F /IM service-name.exe

REM Ждём
TIMEOUT /T 120 /NOBREAK

REM Запускаем службу обратно в работу
NET start service-name

Как написать батник для перезапуска службы

Работая с некоторыми программами, приходится вручную включать или отключать определенные службы. Например, если вы не хотите, чтобы фоновый процесс того или иного приложения не был запущен — вы его отключаете. Но когда это делается регулярно, не очень удобно каждый раз заходить в «Службы» операционной системы Windows 10 и Windows 11, искать ее в большом списке и вручную останавливать. В этой статье мы покажем, как создать скрип и как можно запустить и остановить службу Windows с помощью ярлыка BAT-файла?

Как запустить и остановить службу Windows с помощью ярлыка BAT-файла?

Процесс не сложный и не нуждается в знаниях программирования. А для выполнения, нужно запустить текстовый редактор и прописать команду. Чтобы успешно создать такой bat-файл, внимательно следуйте нижеприведенной инструкции:

  1. запустите компонент «Службы» и откройте нужный для вас процесс (для примера мы выбрали фоновый процесс Hamachi)
  2. в графе «Имя службы», скопируйте название (в нашем случае это — Hamachi2Svc)
    Как запустить и остановить службу Windows с помощью ярлыка BAT-файла?
  3. создайте текстовый файл в любом удобном для вас месте и откройте его
    Как запустить и остановить службу Windows с помощью ярлыка BAT-файла?
  4. пропишите команду: net stop (для остановки) или net start (для запуска)
    Примечание: обратите внимание, что для выполнения каждой команды нужно создавать отдельный файл
  5. после команды, через пробел, вставьте название службы. У вас должно получиться примерно как на скриншоте ниже:
    Как запустить и остановить службу Windows с помощью ярлыка BAT-файла?
  6. сохраните текстовый документ
  7. переименуйте расширение документа на .bat (в этой статье описано как включить расширения файлов)
    Как запустить и остановить службу Windows с помощью ярлыка BAT-файла?
  8. создайте ярлык для этого BAT-файла (например, нажав на правую клавишу и выбрав «Отправить» — «Рабочий стол — создать ярлык»)
  9. откройте «Свойства» свежесозданного ярлыка и нажмите на кнопку «Дополнительно«
  10. поставьте птичку возле «Запускать от имени администратора«
  11. Нажмите кнопку «ОК»
    Как запустить и остановить службу Windows с помощью ярлыка BAT-файла?

Созданный ярлык вы можете разместить в любое удобное место. Только будьте внимательны, чтобы не удалить основной bat-файл. Его расположение не должно изменяться после создания ярлыка. Теперь, для запуска или остановки нужной для вас службы — запустите ярлык и подтвердите запуск с правами администратора.

Надеемся, что данная инструкция помогла вам облегчить процесс отключения и включения служб в операционных системах Windows 10 и Windows 11. Другие статьи об использовании системы Windows вы найдете на нашем сайте в одноименном разделе

Как написать батник для перезапуска Outlook?

Необходимо написать батник для Outlook: бывает что в исходящих подвисают сообщения, а пользователи спамят «Принять и отправить». Необходимо, чтобы батник гасил процесс outlook.exe и заново его запускал.

Я попробовал такой вариант, он его гасит, но не открывает.

taskkill /im Outlook.exe /F @echo off Start "" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs"
  • Вопрос задан более года назад
  • 362 просмотра

12 комментариев

Простой 12 комментариев

Может потому, что в команде start не указано что надо запускать?
На сколько я понимаю указанный путь ведет к каталогу Programs. Нужно указать полный путь к ярлыку или к исполняемому файлу.

wexvellencex @wexvellencex Автор вопроса

res2001, Поправил скрипт, спасибо. Но теперь при включении батника с открытым аутлуком, он его закрывает и запускает с предупреждением, что произошла ошибка и предлагает запустить в безопасном режиме, это можно как-то пофиксить или не принципиально?

wexvellencex, Пофиксить врядли можно, т.к. предыдущую сессию оутлука вы убиваете принудительно. От таких действий есть не нулевой шанс повреждения базы данных оутлука. База оутлука и без такого экстремального использования подвержена падениям, а тут вы еще и усугубляете.

wexvellencex @wexvellencex Автор вопроса
res2001, То есть скрипт может усугубить и без того падающую базу?

wexvellencex, Не скрипт сам по себе, а принудительное закрытие процесса оутлука, без возможности корректно завершить приложение.
Возможно стоит поискать более гуманные варианты закрытия оутлука. Например, можно отправлять оутлуку комбинацию клавишь Alt+F4, что должно вызвать корректное закрытие процесса. Или сообщение WM_CLOSE из WinAPI.
Отправлять комбинации клавиш произвольному приложению можно с помощью autoit или nircmd, возможно они же умеют отправлять и сообщения.

Кстати, в интернетах пишут, что если не использовать флаг /f в taskkill, то приложению будет отправлено сообщение WM_CLOSE, что вам и нужно. Хотя в справке самого taskkill об этом ничего не сказано.

wexvellencex @wexvellencex Автор вопроса
res2001, Если убрать флаг /F то он не закрывает его, а пишет что это окно уже открыто

wexvellencex, Посмотрите в сторону других инструментов.

Кстати, как вы планируете использовать этот скрипт? Пользователь должен будет сам его запускать?

wexvellencex @wexvellencex Автор вопроса
res2001, Да, то есть в случае не закрытия, чтобы он использовал скрипт и аутлук ребутнулся

wexvellencex, Я то же сталкивался с подобной проблемой с оутлуком. На сколько помню, оутлук можно было закрыть вручную в таком случае. После повторного запуска проблема исчезала.
У вас руками не закрывается?

wexvellencex,
Что за почтовый сервер?
Что с очередями на почтовом сервере?
Как Outlook подключается к почтовому серверу?
Режим кэширования Outlook используется?
Размер профилей у страдающих пользователей?

wexvellencex @wexvellencex Автор вопроса

res2001, Да, он он бывает в трее висит и не закрывается, приходится через таски его закрывать, а чтобы не делать лишних кликов, решил просто через батник это сделать 🙂

wexvellencex, Ясно. Ну раз его по любому приходится закрывать принудительно, то taskkill ему еще больше не навредит.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *