Батник для запуска службы windows 10

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

Возникла необходимость автоматизировать для пользователей запуск и остановку определенной службы 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

Сделай сам

Блог о самоделках, поделках, программировании на ява скрипте и iMacros, написании собственных программ, и заработку в интернете. А так же некоторые тонкости и настройки броузера Mozilla и других программ.

Остановка запуск служб BAT файлом, Отключение служб включение служб BAT файлом, добавление в реестр BAT файлом, остановка служб BAT файлом

Поскольку у меня сейчас стоит виндовс 10, а она конфликтует на моем ноутбуке с драйвером видеокарты gf 410m и компьютер после установки драйвера кирпичится, а так же Бесконечное завершение работы и бесконечная перезагрузка из за установленного приложения от Мегафона юсб 4ж модема, а точнее конфликт происходит конкретно из за службы Megafon Internet Sevice, то мне как раз таки и понадобится Отключение служб включение служб BAT файлом, добавление в реестр BAT файлом, остановка служб BAT файлом.

То есть когда мне понадобится приложение Мегафон интернет, то я могу запустить его прямо из папки с программой (само приложение деинсталлировано из системы), которая требует запуска службы Megafon Internet Sevice и при нажатии на кнопку Запустить службу — приложение запускает эту службу. Но вот проблема — запустить запускает, а завершить — нет. То есть служба постоянно висит в системе при включении и выключении компьютера. А поскольку виндовс 10 конфликтует с этой службой, то ее необходимо завершить и отключить, чтобы при завершении работы виндовс 10 не пошло Бесконечное завершение работы (приходится вырубать топором — удерживать кнопку питания) или Бесконечная перезагрузка виндовс 10 (если отправили комп на перезагрузку). Так вот чтобы этого не было — службу необходимо отключать до Завершения работы виндовс 10. Еще раз — поэтому мне и нужно отключение служб включение служб BAT файлом, добавление в реестр BAT файлом, остановка служб BAT файлом.

Итак, как ОСТАНОВИТЬ службу Megafon Internet Sevice с помощью бат файла
И отключить службу в реестре, чтобы при перезапуске она снова не запускалась. Для этого я сделал BAT файл и добавил туда 2-3 строки, 1я из которых останавливает службу, а 2я отключает ее в реестре.

NET STOP «MegaFon Internet Service»
reg add «HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMegaFon Internet Service» /v Start /t REG_DWORD /d 4 /f
pause

А для запуска службы нужно использовать следующее:
NET START «MegaFon Internet Service»

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

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

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

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

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

  1. запустите компонент «Службы» и откройте нужный для вас процесс (для примера мы выбрали фоновый процесс Hamachi)
  2. в графе «Имя службы», скопируйте название (в нашем случае это — Hamachi2Svc)

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

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

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

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

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

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

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

Остановить и запустить службу через пакетный или cmd-файл?

Как я могу написать bat или cmd, чтобы остановить и запустить службу надежно с проверкой ошибок (или дайте мне знать, что она не была успешной по какой-либо причине)?

14 ответов

использовать SC (service control) команда, это дает вам гораздо больше возможностей, чем просто start & stop .

скажите вам, преуспели они или потерпели неудачу довольно ясно. Например

при запуске из пакетного файла у вас есть доступ к уровню ошибок кода возврата. 0 указывает на успех. Все, что выше указывает на ошибку.

как файл bat, error.bat :

вывод выглядит следующим образом:

Коды Возврата

изменить 20.04.2015

команда NET не возвращает задокументированные коды возврата класса Win32_Service (служба не активна,время ожидания запроса на обслуживание и т. д.), и для многих ошибок просто вернет Errorlevel 2.

вы можете использовать команду NET START, а затем проверить переменную среды ERRORLEVEL, например

отказ от ответственности: я написал это с головы, но я думаю, что это сработает.

вместо проверки кодов это тоже работает

Я создал свой личный пакетный файл для этого, мой немного отличается, но не стесняйтесь изменять, как вы считаете нужным.

Я создал это некоторое время назад, потому что мне было скучно и я хотел сделать простой способ для людей, чтобы иметь возможность ввода конец, начиная с, остановка или установка в auto. Этот файл BAT просто запрашивает, чтобы вы ввели имя службы, и он сделает все остальное за вас. Я не знала, что он был ища что-то, что указывало на любую ошибку, я, должно быть, неправильно истолковал эту часть. Хотя обычно это можно сделать, введя >> output.txt в конце строки.

на %var% это просто способ для пользователя, чтобы иметь возможность ввести свой собственный сервис в это, вместо того, чтобы идти изменить файл bat каждый раз, когда вы хотите, чтобы начать/остановить другую службу.

Если я ошибаюсь, любой может исправить меня в этом.

использование кодов возврата от net start и net stop Кажется мне лучшим методом. Попробуйте взглянуть на это:Net Start коды возврата.

Подробности

Создано: 20 сентября 2021

Работая с некоторыми программами, приходится вручную включать или отключать определенные службы. Например, если вы не хотите, чтобы фоновый процесс того или иного приложения не был запущен — вы его отключаете. Но когда это делается регулярно, не очень удобно каждый раз заходить в «Службы» операционной системы 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 вы найдете на нашем сайте в одноименном разделе

Как сделать автоматический запуск(перезапуск) службы windows по расписанию? С таким вопросом я столкнулся совсем недавно, участвуя в одном из проектов по своей работе. Решение оказалось достаточно простым.

Службы windows

Настройка автоматического запуска или перезапуска службы осуществляет в два простых шага:

  1. Шаг 1 — создать сценарий запуска/перезапуска службы.
  2. Шаг 2 — создать задачу и настроить расписание ее выполнения.

Создание сценария для службы

Сценарий запуска/перезапуска службы представляет собой обычный батник (bat-файл), который будет содержать команды:

1. Для запуска службы

net start [Имя службы] - запуск службы

2. Для перезапуска службы

net stop [Имя службы] - остановка службы
net start [Имя службы] - запуск службы

Пример файла перезапуска службы windows

В качестве примера использована служба KMService.

Итак, создаем батник (bat-файл) с командами для перезапуска службы, который будет содержать две строки:

net stop KMService
net start KMService

Для обеспечения автоматического выполнения сценария перезапуска службы по расписанию: создается специальная задача, которая будет выполнять сценарий (запускать батничек).

Создание задачи в windows

Для создания задачи необходимо перейти в «Панель управления», кликнув в меню «Пуск» на пункт «Панель управления».

Пуск. Панель управления

Далее, переходим в раздел «Администрирование».

Раздел администрирование

В разделе «Администрирование» необходимо выбрать пункт «Планировщик заданий».

Планировщик заданий

В окне «Планировщик заданий» кликаем правой кнопкой мыши на «Планировщик заданий» и выбираем пункт меню «Создать задачу».

Запуск служб windows по расписанию

В окне «Создание задачи» указываем Имя задачи, ставим галочку «Выполнить с наивысшими правами» и переходим на вкладку «Триггеры».

Запуск служб windows по расписанию

На вкладке «Триггеры» отображаются задаются условия запуска задачи. Для того чтобы создать расписание задачи перезапуска службы нажимаем на кнопку «Создать».

Запуск служб windows по расписанию

Заполняем параметры расписания задачи по перезапуску службы windows и нажимаем кнопку «Ок».

Запуск служб windows по расписанию

После создания расписания запуска задачи, необходимо указать наш сценарий(батничек), который должен выполнятся по расписанию. Для этого, переходим на вкладку «Действия» и нажимаем кнопку «Создать».

Запуск служб windows по расписанию

В окне «Создание действия» выбираем действие — «Запуск программы». После этого, нажимаем на кнопку «Обзор», ищем и выбираем наш файл со сценарием и нажимаем на кнопку «Ок».

И наконец, в окне «Создание задачи» нажимаем на кнопку «Ок».

Запуск служб windows по расписанию

Готово! Если все было сделано правильно, то задача будет выполняться по расписанию и будет перезапускать выбранную службу windows.

Slom

0 / 0 / 0

Регистрация: 10.03.2021

Сообщений: 32

1

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

10.03.2021, 12:04. Показов 3885. Ответов 64

Метки нет (Все метки)


Добрый день,прошу подсказать правильное написание батника.(код ниже) Тот,что есть срабатывает один раз,чекает состояние службы и если она остановлена ,то запускает ее.НО мне хотелось бы понять, как сделать чтоб батник постоянно чекал состояние службы и запускал ее в случае остановки (я только начал заниматься писанием batch-файла (3 дня читаю и пытаюсь сделать батник) ,может и видел правильные ответы,хотя скрупулезно искал данные,но может как в той шутке «смотрел в книгу,видел фигу»). Так же вопрос как создать конфигурационный файл для батника,если например нужно чекать раз в час и запускать.

Заранее спасибо,надеюсь на ваши подсказки и советы,реально интересно заниматься этим,да и решил что пригодится ,но когда,кажется,все варианты посмотрел решил напрямую написать на форуме.

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@Echo On
title TEST ROUTER
Set ServiceName=ROUTER
 
MOVE проверка и запуск 3.bat>>log.txt echo %date%; %time:~0,-3%; %%~fi; Successfully || 1>>log.txt echo %date%; %time:~0,-3%; %%~fi; failure
 
:: Получаем состояние службы, проверяем запущена ли она
SC queryex %ServiceName%|Find "STATE"|Find "RUNNING">Nul&&(
    rem Пробуем остановить
    Net stop %ServiceName%>nul||(
        rem Если остановить через net stop не вышло, запрашиваем PID
        For /F "tokens=3" %%A In ('SC queryex %ServiceName%^|Find "PID"') Do (
            rem Убиваем процесс вместе с дочерними, используя полученный PID
            TaskKill /F /T /PID %%A>nul
            rem Задержка, чтобы обновился статус службы после убийства процесса
            Ping -n 4 127.0.0.1>nul
        )
        rem еще раз
        Net stop %ServiceName% 2>nul
    )
)
rem Если служба не была запущена, или уже убита к тому времени - запускаем её
Net start %ServiceName%
pause

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



2394 / 958 / 441

Регистрация: 29.05.2016

Сообщений: 4,177

10.03.2021, 12:15

2

Slom, добрый! Самым правильным будет настроить в планировщике запуск скрипта, который поднимет службу по событию (остановка службы). В Вашем случае можете текущий скрипт запихнуть так же в планировщик и в качестве триггера указать периодичность запуска (тот же час)



0



0 / 0 / 0

Регистрация: 10.03.2021

Сообщений: 32

10.03.2021, 13:21

 [ТС]

3

Karen87, да,это был запасной вариант,но думал это все одним батником делать,так как если у тебя несколько мест где это решение нужно использовать ,то везде нужно планировщик настраивать.
еще вопрос,создаю лог,но он при успешном запуске пишет 10.03.2021; 15:38:55; %~fi; failure.

Что не правильно написал? хотел бы чтоб успешно и ошибку выдавало при запуске,но если при этом служба раннинг
MOVE проверка и запуск 3.bat>>log.txt echo %date%; %time:~0,-3%; %%~fi; Successfully || 1>>log.txt echo %date%; %time:~0,-3%; %%~fi; failure



0



Karen87

2394 / 958 / 441

Регистрация: 29.05.2016

Сообщений: 4,177

10.03.2021, 14:51

4

Цитата
Сообщение от Slom
Посмотреть сообщение

мне хотелось бы понять, как сделать чтоб батник постоянно чекал состояние службы и запускал ее в случае остановки (я только начал заниматься писанием batch-файла (3 дня читаю и пытаюсь сделать батник) ,может и видел правильные ответы,хотя скрупулезно искал данные,но может как в той шутке «смотрел в книгу,видел фигу»). Так же вопрос как создать конфигурационный файл для батника,если например нужно чекать раз в час и запускать.

Примерно так:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echo off
title TEST ROUTER
setlocal enableextensions enabledelayedexpansion
:process
if not defined period (
    set /p "period=Укажите периодичность проверки в часах: "
)
Set "ServiceName=ROUTER"
for /f "tokens=* delims=" %%a in ('powershell -executionpolicy bypass -command "(Get-Service %ServiceName%).Status"') do (
    if /i "%%a"=="Stopped" (
        net start %ServiceName%
    )
)
set /A waiting=!period!*3600
ping localhost -n %waiting%>nul
goto process

Можно и логирование прикрутить. Что хотите видеть в логе и в каком виде он должен быть?



0



0 / 0 / 0

Регистрация: 10.03.2021

Сообщений: 32

10.03.2021, 15:33

 [ТС]

5

Karen87, спасибо.

Правильно я понимаю команда goto process ,по сути, оставляет батник работающим?
второй вопрос: Если мне не нужна проверка каждый час ,а только тогда когда остановилась служба сразу ее запускать, то мне нужно заремить(rem) следующие строчки:

5 if not defined period (
6 set /p «period=Укажите периодичность проверки в часах: «

14 set /A waiting=!period!*3600

насчет логов:

10.03.2021; 15:38:55; служба остановлена.
10.03.2021; 15:38:57; служба запущена, после остановки

чтоб понимать когда стоп и старт службы был. Заранее благодарю.



0



2394 / 958 / 441

Регистрация: 29.05.2016

Сообщений: 4,177

10.03.2021, 15:37

6

Цитата
Сообщение от Slom
Посмотреть сообщение

Правильно я понимаю команда goto process ,по сути, оставляет батник работающим?

Да, происходит переход в начало, то есть цикличная работа скрипта

Цитата
Сообщение от Slom
Посмотреть сообщение

второй вопрос: Если мне не нужна проверка каждый час ,а только тогда когда остановилась служба сразу ее запускать, то мне нужно заремить(rem) следующие строчки:

А как Вы поймёте, что она остановилась? Вам же периодически нужно запрашивать её статус? Руками будете открывать скрипт?

Цитата
Сообщение от Slom
Посмотреть сообщение

насчет логов:
10.03.2021; 15:38:55; служба остановлена.
10.03.2021; 15:38:57; служба запущена, после остановки

Оповещать нужно в самом скрипте или делать вывод во внешний файл?



0



0 / 0 / 0

Регистрация: 10.03.2021

Сообщений: 32

10.03.2021, 15:42

 [ТС]

7

Цитата
Сообщение от Karen87
Посмотреть сообщение

Да, происходит переход в начало, то есть цикличная работа скрипта

спасибо,за пояснение.

Цитата
Сообщение от Karen87
Посмотреть сообщение

А как Вы поймёте, что она остановилась? Вам же периодически нужно запрашивать её статус? Руками будете открывать скрипт?

Проверкой состояния службы ,или я не прав и так не совсем правильно?
SC queryex %ServiceName%|Find «STATE»|Find «RUNNING»>Nul&&(

Цитата
Сообщение от Karen87
Посмотреть сообщение

Оповещать нужно в самом скрипте или делать вывод во внешний файл?

Внешний лог файл



0



2394 / 958 / 441

Регистрация: 29.05.2016

Сообщений: 4,177

10.03.2021, 15:46

8

Цитата
Сообщение от Slom
Посмотреть сообщение

Проверкой состояния службы ,или я не прав и так не совсем правильно?
SC queryex %ServiceName%|Find «STATE»|Find «RUNNING»>Nul&&(

Вы не совсем корректно доносите желаемое либо я не совсем корректно понимаю. Что хотите от скрипта получить? Периодическую проверку статуса служба при постоянно запущенном мониторинге или единоразово запустить скрипт и если он обнаружит, что служба остановлена запускать её?

Цитата
Сообщение от Slom
Посмотреть сообщение

Внешний лог файл

Ок, реализую после уточнения предыдущего момента

Добавлено через 15 секунд

Цитата
Сообщение от Slom
Посмотреть сообщение

спасибо,за пояснение.

Пожалуйста



0



0 / 0 / 0

Регистрация: 10.03.2021

Сообщений: 32

10.03.2021, 16:04

 [ТС]

9

Цитата
Сообщение от Karen87
Посмотреть сообщение

Вы не совсем корректно доносите желаемое либо я не совсем корректно понимаю. Что хотите от скрипта получить? Периодическую проверку статуса служба при постоянно запущенном мониторинге или единоразово запустить скрипт и если он обнаружит, что служба остановлена запускать её?

я понял,попробую пояснить.

В Вашей версии батника , батник будет запускаться каждый час, если служба остановлена.(если я не правильно что-то понял, то прошу меня поправить)
Так же я уточнил, как можно реализовать ,чтоб батник чекал состояние службы и если она остановлена ,то запускал бы ее. И в данной ситуации я спросил у Вас про то, что: если мне дополнительно не нужно будет чекать каждый час службу(я могу ее заремить?), но при этом чекать статус «стоп»,и чтоб батник запустил службу сам.



0



2394 / 958 / 441

Регистрация: 29.05.2016

Сообщений: 4,177

10.03.2021, 16:08

10

Цитата
Сообщение от Slom
Посмотреть сообщение

В Вашей версии батника , батник будет запускаться каждый час, если служба остановлена.(если я не правильно что-то понял, то прошу меня поправить)

Не совсем так. Батник проверяет службу и в зависимости от её статуса либо ничего не делает (если служба запущена), либо запускает её (если служба остановлена). Затем идёт ожидание в рамках временного интервала, который задаётся в начале скрипта. То есть, допустим, через час он снова проверяет статус службы и т.д.
В связи с этим я и спрашиваю каким образом проверять статус службы будете? Руками запускать скрипт?



0



0 / 0 / 0

Регистрация: 10.03.2021

Сообщений: 32

10.03.2021, 16:30

 [ТС]

11

Ручками,смысл скрипта теряется. Понял,я ошибочно думал, что можно это сделать как то онлайн ,что скрипт должен постоянно чекать службу,но по сути тут реализовано как Вы написали, только можно поставить каждые 5 минут например. Моя ошибка, не совсем осмыслил весь технический момент батника.



0



Karen87

2394 / 958 / 441

Регистрация: 29.05.2016

Сообщений: 4,177

10.03.2021, 16:36

12

Лучший ответ Сообщение было отмечено Slom как решение

Решение

С логированием и промежутком в 5 минут:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
setlocal enableextensions enabledelayedexpansion
title TEST ROUTER
:process
Set "ServiceName=ROUTER"
for /f "tokens=* delims=" %%a in ('powershell -executionpolicy bypass -command "(Get-Service %ServiceName%).Status"') do (
    if /i "%%a"=="Stopped" (
        echo !date!; !time:~,-3! служба остановлена>>log.txt
        net start %ServiceName%
        echo !date!; !time:~,-3! служба запущена>>log.txt
    )
)
ping localhost -n 300>nul
goto process



1



Slom

0 / 0 / 0

Регистрация: 10.03.2021

Сообщений: 32

10.03.2021, 17:02

 [ТС]

13

Гигантское Вам спасибо за помощь! И за терпение!

Немножко поправил батник (совместил Ваши версии):

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@echo off
chcp 1251
title TEST ROUTER
setlocal enableextensions enabledelayedexpansion
:process
if not defined period (
    set /p "period=Укажите периодичность проверки в минутах: "
)
Set "ServiceName=iQ-ROUTER"
for /f "tokens=* delims=" %%a in ('powershell -executionpolicy bypass -command "(Get-Service %ServiceName%).Status"') do (
    if /i "%%a"=="Stopped" (
    echo !date!; !time:~,-3! служба остановлена>>log.txt
    net start %ServiceName%
    echo !date!; !time:~,-3! служба запущена>>log.txt
    )
)
set /A waiting=!period!*60
ping localhost -n %waiting%>nul
goto process

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



0



2394 / 958 / 441

Регистрация: 29.05.2016

Сообщений: 4,177

10.03.2021, 17:08

14

Цитата
Сообщение от Slom
Посмотреть сообщение

один вопрос остался: лог не пишется почему то?

Уверены? Должен формироваться файл log.txt рядом со скриптом

Цитата
Сообщение от Slom
Посмотреть сообщение

так же как его спрятать после запуска?

Для этого допутилита нужна будет. Не смущает?



0



0 / 0 / 0

Регистрация: 10.03.2021

Сообщений: 32

10.03.2021, 17:38

 [ТС]

15

Цитата
Сообщение от Karen87
Посмотреть сообщение

Уверены? Должен формироваться файл log.txt рядом со скриптом

перепроверил,все ок.сорри.

Цитата
Сообщение от Karen87
Посмотреть сообщение

Для этого допутилита нужна будет. Не смущает?

вроде нет.

еще ,если позволите,вопрос.Для того ,чтоб после перезагрузки компьютера батник заработал лучше в автозагрузки его поставить или перевести батник в exe и так же в автозагрузки?



0



2394 / 958 / 441

Регистрация: 29.05.2016

Сообщений: 4,177

10.03.2021, 17:52

16

Slom, в автозагрузку просто кидаете. Скрытое выполнение попозже допишу



0



Karen87

2394 / 958 / 441

Регистрация: 29.05.2016

Сообщений: 4,177

10.03.2021, 18:52

17

Скрытое выполнение:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
cmdow @ /HID
chcp 1251
title TEST ROUTER
setlocal enableextensions enabledelayedexpansion
:process
if not defined period (
    set /p "period=Укажите периодичность проверки в минутах: "
)
Set "ServiceName=iQ-ROUTER"
for /f "tokens=* delims=" %%a in ('powershell -executionpolicy bypass -command "(Get-Service %ServiceName%).Status"') do (
    if /i "%%a"=="Stopped" (
    echo !date!; !time:~,-3! служба остановлена>>log.txt
    net start %ServiceName%
    echo !date!; !time:~,-3! служба запущена>>log.txt
    )
)
set /A waiting=!period!*60
ping localhost -n %waiting%>nul
goto process

Примечание.
Утилиту во вложении распакуйте и скопируйте в C:windowssystem32

Вложения

Тип файла: zip cmdow.zip (36.6 Кб, 3 просмотров)



0



Karen87

2394 / 958 / 441

Регистрация: 29.05.2016

Сообщений: 4,177

10.03.2021, 19:28

18

Я бы совместил 13 и 14 строчки в одну, кстати:

Windows Batch file
1
net start %ServiceName% && echo !date!; !time:~,-3! служба запущена>>log.txt

В этом случае событие запуска службы в лог будет добавлено только в случае её успешного запуска



0



0 / 0 / 0

Регистрация: 10.03.2021

Сообщений: 32

10.03.2021, 19:40

 [ТС]

19

Karen87,

распаковал cmdow в C:windowssystem32, батник спрятался,но при этом не произошло запуска службы и не пишутся логи+не дает выставить количество минут



0



2394 / 958 / 441

Регистрация: 29.05.2016

Сообщений: 4,177

10.03.2021, 19:43

20

А, точно… Я и забыл про счетчик, тогда давайте думать каким образом будете выставлять периодичность проверки?



0



Поскольку у меня сейчас стоит виндовс 10, а она конфликтует на моем ноутбуке с драйвером видеокарты gf 410m и компьютер после установки драйвера кирпичится, а так же Бесконечное завершение работы и бесконечная перезагрузка из за установленного приложения от Мегафона юсб 4ж модема, а точнее конфликт происходит конкретно из за службы Megafon Internet Sevice, то мне как раз таки и понадобится Отключение служб включение служб BAT файлом, добавление в реестр BAT файлом, остановка служб BAT файлом.

То есть когда мне понадобится приложение Мегафон интернет, то я могу запустить его прямо из папки с программой (само приложение деинсталлировано из системы), которая требует запуска службы Megafon Internet Sevice и при нажатии на кнопку Запустить службу — приложение запускает эту службу. Но вот проблема — запустить запускает, а завершить — нет. То есть служба постоянно висит в системе при включении и выключении компьютера. А поскольку виндовс 10 конфликтует с этой службой, то ее необходимо завершить и отключить, чтобы при завершении работы виндовс 10 не пошло Бесконечное завершение работы (приходится вырубать топором — удерживать кнопку питания) или Бесконечная перезагрузка виндовс 10 (если отправили комп на перезагрузку). Так вот чтобы этого не было — службу необходимо отключать до Завершения работы виндовс 10. Еще раз — поэтому мне и нужно отключение служб включение служб BAT файлом, добавление в реестр BAT файлом, остановка служб BAT файлом.

Итак, как ОСТАНОВИТЬ службу Megafon Internet Sevice с помощью бат файла
И отключить службу в реестре, чтобы при перезапуске она снова не запускалась. Для этого я сделал BAT файл и добавил туда 2-3 строки, 1я из которых останавливает службу, а 2я отключает ее в реестре.

NET STOP «MegaFon Internet Service»
reg add «HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMegaFon Internet Service» /v Start /t REG_DWORD /d 4 /f
pause

А для запуска службы нужно использовать следующее:
NET START «MegaFon Internet Service»

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

Опубликовано 19 Ноя 2013. Категория IT-заметки  Метки: bat, cmd, MS SQL Server, SQL, SQL Server  

services-windowsВсем привет дорогие друзья. В данной статье я хотел бы Вам рассказать про то, как можно остановить или запустить какую-то службу при помощи командной строки или простого bat-файла. Вы можете спросить, а зачем это необходимо мне, если я могу сделать это при помощи Панели управления (Пуск-Панели управления-Администрирования-Службы). Я Вам отвечу на данный вопрос: может быть такое, что Вам необходимо делать какую-то операцию по определенному времени и Вам необходимо отключать какую-то службу, чтобы сделать эту операцию, а доступа к компьютеру нет. Поэтому, Вы можете написать bat-файл, который будет останавливать службу, а по окончанию операции ее запускать. Данный файл Вы можете назначить в Назначенные задания.

Это может пригодиться, если делаете какой-то бекап базы данных, но копирование базы невозможно из-за того, что работает служба сервера, например SQL-сервер. Данный вопрос можно будет решить, путем написания файла, который останавливает службу по расписанию, потом Вы производите копирование, а затем автоматически запускается служба.

Вот так Вы можете остановить службу в ручном режиме, а дальше я Вам покажу, как это сделать при помощи командной строки или же bat-файла.

service-bat_1

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

service-bat_2

Все, зная название службы, можно приступать. Поэтому, нажимаем Пуск-Выполнить и в поле вводим CMD, затем в командной строке пишем следующее:

service-bat_3

То есть, пишите: net stop имя_службы

Для того чтобы ее запустить, Вам придется написать следующее: net start имя_службы:

service-bat_4

Вот, таким образом Вы можете остановить службу, а также ее запустить. Если интересно, то я Вам могу рассказать, как можно настроить автоматический бекап базы данных SQL-сервера. А пока можете почитать статью о том, как можно создать БД в MS SQL Server, а также как удаленно к ней подключиться.

Как создать bat файл в WindowsНередко советы по тем или иным действиям и исправлениям в Windows 10, 8 и Windows 7 включают в себя шаги наподобие: «создайте файл .bat со следующим содержимым и запустите его». Однако, начинающий пользователь не всегда знает, как это сделать и что собой представляет такой файл.

В этой инструкции подробно о том, как создать командный файл bat, запустить его и некоторая дополнительная информация, которая, возможно, окажется полезной в контексте рассматриваемой темы.

Создание .bat файла с помощью блокнота

Первый и самый простой способ создать bat файл — использовать стандартную программу «Блокнот», присутствующую во всех актуальных версиях Windows.

Шаги по созданию будут следующими

  1. Запустите Блокнот (находится в Программы — Стандартные, в Windows 10 быстрее запустить через поиск в панели задач, если блокнота нет в меню «Пуск», запустить его можно из C:Windowsnotepad.exe).
  2. Введите в блокнот код вашего bat файла (например, скопируйте откуда-то, либо напишите свой, о некоторых командах — далее в инструкции). Создание bat файла в блокноте
  3. В меню блокнота выберите «Файл» — «Сохранить как», выберите место сохранение файла, укажите имя файла с расширением .bat и, обязательно, в поле «Тип файла» установите «Все файлы». Сохранение bat файла в блокноте
  4. Нажмите кнопку «Сохранить».

Примечание: если файл не сохраняется в указанное расположение, например, на диск C, с сообщение «У вас нет разрешения на сохранение файлов в этом месте», сохраните его в папку «Документы» или на рабочий стол, а затем скопируйте в нужное расположение (причина проблемы в том, что в Windows 10 для записи в некоторые папки нужны права администратора, а поскольку блокнот не был запущен от имени администратора, он не может сохранить файл в указанную папку).

Ваш файл .bat готов: если его запустить, будут автоматически выполнены все перечисленные в файле команды (при условии отсутствия ошибок и необходимости прав администратора: в некоторых случаях может потребоваться запускать файл bat от имени администратора: правый клик по файлу .bat — запустить от имени администратора в контекстном меню).

Запуск bat файла от имени администратора

Примечание: в дальнейшем, если вы захотите отредактировать созданный файл, просто нажмите по нему правой кнопкой мыши и выберите «Изменить».

Существуют и другие способы сделать bat файл, но все они сводятся к написанию команд по одной команде в строке в текстовый файл в любом текстовом редакторе (без форматирования), который затем сохраняется с расширением .bat (например, в Windows XP и 32-битной Windows 7 вы даже можете создать файл .bat в командной строке с помощью текстового редактора edit).

Если у вас включено отображение расширений файлов (изменяется в панель управления — параметры проводника — вид — скрывать расширения зарегистрированных типов файлов), то вы можете просто создать файл .txt, затем переименовать файл, установив расширение .bat.

Запуск программ в файле bat и другие базовые команды

В командном файле вы можете запускать любые программы и команды из этого списка: https://technet.microsoft.com/ru-ru/library/cc772390(v=ws.10).aspx (правда, некоторые из указанных могут отсутствовать в Windows 8 и Windows 10). Далее — лишь некоторые базовые сведения для начинающих пользователей.

Чаще всего бывают следующие задачи: запуск программы или нескольких программ из .bat файла, запуск какой-то функции (например, очистка буфера обмена, раздача Wi-Fi с ноутбука, выключение компьютера по таймеру).

Для запуска программы или программ используйте команду:

start "" путь_к_программе

Если путь содержит пробелы, возьмите весь путь в двойные кавычки, например:

start "" "C:Program Filesprogram.exe"

После пути к программе можно также указать параметры, с которыми она должна запускаться, например (аналогично, если параметры запуска содержат пробелы, возьмите их в кавычки):

start "" c:windowsnotepad.exe file.txt

Примечание: в двойных кавычках после start по спецификациям должно указываться имя командного файла, отображаемое в заголовке командной строки. Это необязательный параметр, но при отсутствии этих кавычек выполнение bat файлов, содержащих кавычки в путях и параметрах может пойти неожиданным образом.

Еще одна полезная возможность — запуск другого bat файла из текущего файла, сделать это можно с помощью команды call:

call путь_к_файлу_bat параметры

Переданные параметры при запуске можно прочитать внутри другого bat файла, например, мы вызываем файл с параметрами:

call file2.bat параметр1 параметр2 параметр3

В file2.bat можно прочесть эти параметры и использовать в качестве путей, параметров для запуска других программ таким образом:

echo %1
echo %2
echo %3
pause

Т.е. для каждого параметра мы используем его порядковый номер со знаком процента. Результатом в приведенном примере будет вывод в окно команд всех переданных параметров (команда echo используется для вывода текста в окно консоли).

По умолчанию, окно команд закрывается сразу после выполнения всех команд. Если нужно прочитать информацию внутри окна, используйте команду pause — она остановит выполнение команд (или закрытие окна) до нажатия любой клавиши в консоли со стороны пользователя.

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

timeout /t время_в_секундах

При желании, вы можете запустить программу в свернутом виде или развернутом видео с помощью параметров MIN и MAX перед указанием самой программы, например:

start "" /MIN c:windowsnotepad.exe

Для закрытия окна команд после выполнения всех команд (хотя, обычно оно и так закрывается при использовании start для запуска), используйте команду exit в последней строке. В случае, если консоль все равно не закрывается после запуска программы, попробуйте использовать такую команду:

cmd /c start /b "" путь_к_программе параметры

Примечание: в данном команде, если пути к программе или параметры содержат пробелы, могут быть проблемы с запуском, которые можно решить так:

cmd /c start "" /d "путь_к_папке_с_пробелами" /b имя_файла_программы "параметры_с_пробелами"

Как уже было отмечено, это лишь очень базовые сведение о наиболее часто используемых командах в bat файлах. При необходимости выполнить дополнительные задачи, попробуйте найти нужную информацию в интернете (поищите, например, «сделать что-то в командной строке» и используйте эти же команды в файле .bat) или задайте вопрос в комментариях, я постараюсь помочь.

Понравилась статья? Поделить с друзьями:
  • Базовый видеодрайвер майкрософт windows 10 скачать драйвер бесплатно
  • Базовый видеодрайвер майкрософт windows 10 как заменить
  • Бателфилд 1942 не запускается на windows 10
  • Базовый видеоадаптер майкрософт драйвер скачать для windows 10 64 bit
  • Батарея с acpi совместимым управлением microsoft драйвер windows 10 скачать