- Как перезапустить службу в Windows 7, 8 и 10
- Перезапуск через Панель управления
- Перезапуск через Командную строку
- Как безопасно разрешить пользователям перезапуск служб в Windows Server 2003
- IT. notes
- Самые популярные статьи
- Как перезапустить службу windows из командной строки ( restart windows service )
- Как принудительно завершить процесс зависшей службы в Windows?
- Завершение зависшей службы с помощью TaskKill
- Принудительное завершение зависшей службы из PowerShell
- Анализ зависших процессов с помощью Resmon
- Process Explorer: Завершение зависшего процесса из-под SYSTEM
Как перезапустить службу в Windows 7, 8 и 10
При сбое в работе любой службы Windows нужно либо перезапустить службу, либо перезагрузить систему. Перезагрузка компьютера неудобна, поскольку занимает время и закрывает все окна. Если не получается остановить службу через Панель управления, можно перезапустить службу Windows из командной строки.
Открыть настройки служб Windows можно 4 способами:
- Нажать Win+R, в окне Выполнить ввести services.msc и нажать Enter. Откроется Диспетчер служб.
- Нажать Пуск, в поиске ввести Службы, открыть настройки.
- Открыть Панель управления -> Система и безопасность -> Администрирование -> Службы.
- Нажать ПКМ на кнопке Пуск или клавиши Win+X. Перейти в «Управление компьютером -> Службы и приложения -> Службы.
К счастью, от версии к версии Windows этот раздел настроек практически не изменялся. В Windows 7, Vista, 8 и 10 «Службы» будут выглядеть почти одинаково.
Перезапуск через Панель управления
Возможностей стандартных настроек в Панели управления достаточно, чтобы останавливать и запускать системные сервисы. Есть возможность полностью отключить ненужные службы — это немного повысит производительность устройства.
Остановка и повторный запуск служб Windows:
- Открыть любым способом окно Службы, найти нужную.
- Нажать по нужной службе правой кнопкой мыши и выбрать Перезапустить.
- Если кнопка Перезапустить неактивна — нажать Свойства.
- Нажать Остановить, дождаться остановки службы.
- Нажать на кнопку Запустить.
Если служба зависла или не остановилась — открыть диспетчер задач (Ctrl+Alt+Del) и завершить все процессы, связанные с проблемной службой.
Перезапуск через Командную строку
Если Панель управления не справляется со своими обязанностями, отключить или перезапустить службу можно через Командную строку (cmd.exe). Командная строка должна быть запущена от имени администратора.
Для управления службами существует 4 команды, дублирующие функционал Панели управления:
- net stopservice — Остановить выбранную службу.
- net startservice — Запустить.
- net pauseservice — Приостановить обслуживание.
- net continueservice — Возобновить обслуживание.
Для работы со службой нужно знать её название. Например, запуск службы Windows Audio будет выполнен по команде net start audiosrv. Здесь audiosrv — системное название службы.
Чтобы его узнать, нужно зайти в свойства. Нужная строка будет в самом верху — «Имя службы». Вывести списком имена всех активных служб можно прямо в Командной строке, введя sc query type= service.
Через консоль можно не только перезапустить службу, но и изменить её тип запуска командой sc config *СЛУЖБА* start=*ТИП_ЗАПУСКА*.
Доступные типы запуска:
- auto — Автоматически.
- demand — Вручную (по требованию).
- delayed-auto — Отложенный запуск.
Например, команда sc config audiosrv start=auto переведет службу Windows Audio в тип запуска Автоматически.
Для полноты нужно упомянуть еще один способ перезапуска — через Диспетчер задач. Для этого нужно нажать комбинацию клавиш Ctrl+Alt+Del (или Ctrl-Shift-Esc), выбрать Диспетчер задач и перейти на вкладку Службы. По нажатию правой кнопки мыши на любой службе появляется контекстное меню, откуда доступна и остановка, и запуск, и перезагрузка.
Как безопасно разрешить пользователям перезапуск служб в Windows Server 2003
Windows Server 2003 | Разместил: Cesar, 2012-05-28 | |
Довольно часто системные администраторы сталкиваются с такой проблемой, как необходимость предоставления простому пользователю права на перезапуск некоторых служб. Но в это же время наделение правами администратора неопытного юзера несет в себе угрозу безопасности и стабильности работы сервера.
В этом случае лучшим решением будет предоставление пользователям ограниченный набор привилегий, например, дать права на удаленный перезапуск конкретной службы.
Для решения данной задачи Microsoft предлагает одну легкую утилиту под названием SubInACL . С помощью нее вы сможете выставлять права на нужную вам службу и таким образом непривилегированный пользователь получит возможность управлять этой службой. Также утилита позволяет администраторам получать информацию о безопасности файлов и ключей реестра, передача этой информации от пользователя к пользователю, от локальной или глобальной группы к группе, от домена к домену.
Пример синтаксиса команды Subinacl:
SUBINACL /SERVICE \\Имя_компьютера\Имя_службы /GRANT=[Имя_Домена\]Имя_пользователя[=Тип_доступа]
Команду необходимо выполнять обладая правами администратора.
В случае если имя компьютера не указано, то операции будут выполняться для локального ПК. Когда не указано имя домена, то учетная запись ищется на локальном компьютере. Вместо имени пользователя может быть указано имя группы.
Параметр «Тип_доступа» может принимать следующие значения:
F : полный доступ
R : чтение
W : запись
X : выполнение
L : чтение разрешений
Q : запрос конфигурации службы
S : запрос состояния службы
E : перечисление зависящих служб
C : изменение конфигурации службы
T : запуск службы
O : остановка службы
P : приостановка и возобновление работы службы
I : опрос службы
U : пользовательские команды
А вот синтаксис, позволяющий пользователю «user1» перезапуск службы «service1» на сервере \\allforos\server1
среди которых = T – права для запуска службы, O – права для остановки службы.
IT. notes
Самые популярные статьи
Как перезапустить службу windows из командной строки ( restart windows service )
Ну и к общему сведению.
При использовании нескольких команд, содержащих символы условной обработки, выполнение команд, стоящих справа от символа условной обработки, будет проводиться в зависимости от результатов выполнения команды, стоящей слева от символа.
Например, требуется, чтобы команда выполнялась, только если предыдущая команда не была выполнена успешно. Или требуется, чтобы команда выполнялась, только если предыдущая команда была выполнена успешно.
Для передачи нескольких команд можно использовать специальные символы, перечисленные далее.
Символ Синтаксис Определение
& [. ]
Используется для разделения нескольких команд в одной командной строке. В Cmd.exe выполняется первая команда, затем вторая команда.
&& [. ]
Запускает команду, стоящую за символом &&, только если команда, стоящая перед этим символом была выполнена успешно. В Cmd.exe выполняется первая команда. Вторая команда выполняется, только если первая была выполнена успешно.
|| [. ]
Запускает команду, стоящую за символом ||, только если команда, стоящая перед символом || не была выполнена. В Cmd.exe выполняется первая команда. Вторая команда выполняется, только если первая не была выполнена (полученный код ошибки превышает ноль).
( ) [. ]
Используется для группировки или вложения команд.
; или ,
Используется для разделения параметров команды.
* Амперсанд (&), вертикальная черта (|) и скобки ( ) являются специальными символами, которым должен предшествовать управляющий символ (^) или кавычки, если эти символы передаются в качестве аргументов.
* Если команда завершает операцию успешно, возвращается нулевой (0) код ошибки или не возвращается никакого кода. Дополнительные сведения о кодах завершения см. в разделе Пакеты Microsoft Windows Resource Kits.
Как принудительно завершить процесс зависшей службы в Windows?
Как завершить процесс службы Windows, зависшей в статусе stopping (остановка)? Думаю, большинство администраторов Windows, встречалось с ситуациями, когда при попытке остановить (перезапустить) службу из графического интерфейса консоли управления службами (Services.msc), служба зависает намертво и висит в статусе Stopping. После этого вы не можете остановить службу в консоли, т.к. кнопки действий службы становятся недоступными. Самый простой способ – перезагрузить сервер, но это не всегда допустимо. Рассмотрим альтернативный способ, позволяющий принудительно завершить зависшую службу или процесс без необходимости перезагрузки.
Если в течении 30 секунд после попытки остановки службы, она не останавливается, Windows выводит сообщение:
При попытке остановить такую службу командой: net stop wuauserv, появляется сообщение:
The service is starting or stopping. Please try again letter.
Завершение зависшей службы с помощью TaskKill
Наиболее простой способ завершить зависшую служу – воспользоваться утилитой taskkill. В первую очередь нужно определить PID (идентификатор процесса) нашей службы. В качестве примера возьмем службу Windows Update, ее системное имя wuauserv (имя можно посмотреть в свойствах службы в консоли services.msc).
В командной строке с правами администратора (это важно, иначе будет ошибка access denied):
sc queryex wuauserv
В данном случае PID процесса — 816.
Чтобы принудительно завершить зависший процесс с PID 816:
taskkill /PID 816 /F
SUCCESS: The process with PID 816 has been terminated.
Данная команда принудительно завершит процесс службы. В дельнейшем можно вернуться в консоль управления службами и вручную стартовать службу (или совсем удалить эту службу, если она не нужна).
«Выстрел в голову» зависшей службы можно выполнить и более элегантно, не выполняя ручное определение PID процесса. У утилиты taskkill есть параметр /FI, позволяющий использовать фильтр для выбора необходимых служб или процессов. Вы можете остановить конкретную службу командой:
TASKKILL /F /FI “SERVICES eq wuauserv”
Или можно вообще не указывать имя, службы, завершив все сервисы в зависшем состоянии с помощью команды:
taskkill /F /FI “status eq not responding”
После этого служба, зависшая в статусе Stopping должна остановиться.
Принудительное завершение зависшей службы из PowerShell
Также вы можете использовать PowerShell для принудительной остановки службы. С помощью следующей команды можно получить список служб, находящихся в состоянии Stopping:
Get-WmiObject -Class win32_service | Where-Object
Завершить процесс для всех найденных служб поможет командлет Stop-Process. Объединив обе операции в цикл, получим скрипт, автоматически завершающий все процессы подвисших служб в системе:
$Services = Get-WmiObject -Class win32_service -Filter «state = ‘stop pending'»
if ($Services) <
foreach ($service in $Services) <
try <
Stop-Process -Id $service.processid -Force -PassThru -ErrorAction Stop
>
catch <
Write-Warning -Message » Error. Error details: $_.Exception.Message»
>
>
>
else <
Write-Output «No services with ‘Stopping’.status»
>
Анализ зависших процессов с помощью Resmon
Вы можете определить процесс, из-за которого зависла служба с помощью монитора ресурсов resmon.
- В окне Монитора ресурсов перейдите на вкладку ЦП (CPU) и найдите процесс зависшей службы;
- Выберите пункт Анализ цепочки ожидания (AnalyzeWaitChain);
- В новом окне скорее всего вы увидите, что вам процесс ожидает другой процесс. Завершите его. Если выполняется ожидание системного процесса svchost.exe, завершать его не нужно. Попробуйте проанализировать цепочку ожидания для этого процесса. Найдите PID процесса, которого ожидает ваш svchost.exe и завершите его.
Process Explorer: Завершение зависшего процесса из-под SYSTEM
Некоторые процессы, запущенные из-под SYSTEM, не может завершить даже локальный администратора сервера. Дело в том, что у него просто может не быть прав на некоторые процессы или службы. Чтобы завершить такие процесс (службы), вам необходимо предоставить локальной группе Administrators права на службу (процесс), а потом завершить их. Для этого нам понадобятся две утилиты: psexec.exe и ProcessExplorer (доступны на сайте Microsoft).
- Для запуска ProcessExplorer с правами системы (SYSTEM), его нужно стартовать таким образом: PSExec -s -i ProcExp.exe
- В списке процессов Process Explorer найдите процесс зависшей службы и откройте ее свойства;
- Перейдите на вкладку Services, найдите свою службу и нажмите кнопку Permissions;
- В разрешения службы предоставьте права FullControl для группы администраторов (Administrators). Сохраните изменения;
- Теперь попробуйте завершить процесс службы.