- Быстрая остановка службы через NET STOP
- Параметры NET STOP
- Примеры команды NET STOP
- Примеры остановки наиболее популярных служб
- Видео — Управление службами Windows через командную строку
- Управление службами в Windows PowerShell
- Как просмотреть список служб в Windows PowerShell
- Как остановить или приостановить службы в Windows PowerShell
- Как запустить или перезапустить службу в Windows PowerShell
- Как изменить параметры службы
- Killing a Windows Service that Hangs on Stopping or Not Responding
- How to Terminate a Hung Windows Service Process Using TaskKill?
- PowerShell: Stop Windows Service with Stopping Status
- Identify a Hang Process Using Resmon
- Process Explorer: Killing a Hung Process Running in SYSTEM Context
Быстрая остановка службы через NET STOP
В командной оболочке команда NET STOP используется для остановки системных служб операционной системы Windows. Быстрая остановка службы через командную строку позволит системным администраторам сэкономить значительное количество времени по сравнению с графическими эквивалентами. Также возможно применение NET STOP в командных сценариях для автоматизации процессов.
Параметры NET STOP
Команда NET STOP останавливает одну из служб Windows. Синтаксис следующий — NET STOP [служба], где [служба] — может быть одной из следующих служб:
- BROWSER — Обозреватель компьютеров;
- DHCP — DHCP-клиент;
- EVENTLOG — Журнал событий;
- MESSENGER — Служба сообщений;
- NETLOGON — Сетевой вход в систему;
- NTLMSSP — Поставщик поддержки безопасности NT LM;
- RASMAN — Диспетчер подключений удаленного доступа;
- REMOTEACCESS — Маршрутизация и удаленный доступ;
- RPCLOCATOR — Локатор удаленного вызова процедур (RPC);
- RPCSS — Удаленный вызов процедур (RPC);
- SCHEDULE — Планировщик заданий;
- SERVER — Сервер;
- SPOOLER — Диспетчер очереди печати;
- LMHOSTS — Поддержка NetBIOS через TCP/IP;
- UPS — Источник бесперебойного питания;
- WORKSTATION — Рабочая станция.
Остановка одной из служб системы Windows может привести к отключению сетевых соединений используемых этой службой. Kроме того, некоторые службы зависят от других служб. Kоманда NET STOP может также использоваться для остановки служб не входящих в состав Windows.
Синтаксис команды довольно простой, нужно лишь ознакомиться с ее параметрами и запомнить имена некоторых служб.
Примеры команды NET STOP
Остановить работу службы «Сервер» можно с помощью следующей команды:
Остановить работу службы «Диспетчер печати» можно командой
Примеры остановки наиболее популярных служб
- net stop dhcp – остановка DHCP- клиента Windows (служба клиента автоматического получения IP-адресов в сети)
- net stop Dnscache — остановка службы DNS-клиента операционной системы
- net stop SharedAccess – остановка брандмауэра Windows(Общий доступ к Интернету ICS)
- net stop Eventlog — остановка службы журнала событий
- net stop Schedule — — остановка службы планировщика заданий Task Scheduler
- net stop MSIServer — остановка службы Windows Installer
С полным списком служб операционной системы Windows и их сокращенными названиями можно ознакомиться в статье – «Перечень служб Windows — полная информация». Net Stop используется вкупе с другими командами net, такими как:
- NET START – запуск службы;
- NET PAUSE – приостановка службы;
- NET CONTINUE – возобновление работы службы.
Видео — Управление службами Windows через командную строку
Управление службами в Windows PowerShell
В этой статье рассмотрены способы решения некоторых типичных задач, связанных со службами с помощью Windows PowerShell.
Служба (service) — это процесс, который запускается на устройстве в фоновом режиме для выполнения определенных действий в ответ на запросы пользователей, приложений, системы.
Состав имеющихся в наличии и запущенных служб зависит от версии операционной системы и установленных в ней приложений.
Основным инструментом для управления службами в графическом режиме на локальном компьютере является консоль Службы , которая находится в программной группе Средства администрирования Windows. Запустить консоль
Службы также можно выполнив команду services.msc в диалоговом окне Выполнить. Также в состав всех версий операционной системы Windows, входит стандартная утилита net.exe командного интерпретатора cmd.exe, в которой для управления службами предусмотрены команды net start и net stop.
Как просмотреть список служб в Windows PowerShell
Запустите консоль Windows PoweShell с административными привилегиями.
Чтобы получить список служб зарегистрированных на локальном компьютере, используйте командлет:
На скриншоте ниже видно, что по умолчанию отображаются имя службы (колонка Name ), её отображаемое имя (колонка DisplayName ) и состояние (колонка Status ).
Для того чтобы отобразить только работающие в данный момент службы, то нужно отфильтровать объекты, у которых значением свойства Status является строка «Running». Для этого выполните команду:
Чтобы просмотреть службы зарегистрированные на удалённом компьютере, можно воспользоваться WMI классом Win32_Service . Если с помощью командлета Select-Object получить свойства State , Name , и DisplayName объекта Win32_Service, то формат выводимых данных будет похож на формат вывода командлета Get-Service. Например:
Get-WmiObject -Class Win32_Service -ComputerName winnoteRU | Select-Object -Property State, Name, DisplayName
Как остановить или приостановить службы в Windows PowerShell
Локальную службу можно остановить с помощью командлета Stop-Service. Параметр -Name задает имя службы для остановки, параметр -Force позволяет остановить указанную службу вместе со всеми службами зависящими от нее.
Например следующая команда остановит службу Spooler (Диспетчер печати) со всеми зависящими от нее службами:
По умолчанию команлет Stop-Service не передает далее по конвейеру объекты, соответствующие останавливаемым службам, и поэтому на экране ничего не отображается. Для остановки служб с выводом информации нужно указать параметр -PassThru, например выполните команду:
Stop-Service -Name Spooler -Force -PassThru
Командлет Suspend-Service позволяет приостановить работу одной или нескольких служб, имена которых задаются в качестве параметра -Name. При приостановке (временной остановке) службы, она продолжает выполняться, однако её действия приостанавливаются до поступления команды на возобновление работы.
Также следует учитывать, что не всякую службу можно приостановить. У объектов System.ServiceProcess.ServiceController, соответствующих службам, имеется логическое свойство CanPauseAndContinue , которое равно $True, если служба может быть приостановлена. Следующая команда приостановит все службы, для которых это возможно:
Для остановки или приостановки служб на удалённом компьютере можно воспользоваться соответственно методами StopService и PauseService WMI-класса Win32_Service.
Как запустить или перезапустить службу в Windows PowerShell
Запустить службу на локальном компьютере можно с помощью командлета Start-Service. В качестве значения параметра Name указывается имя запускаемой службы. Как и в предыдущих командлетах *-Service, после запуска службы на экран не выводится никакого сообщения.
Для вывода информации можно использовать параметр -PassThru. Например, следующая команда запускает службу WSearch (служба индексирования контента) и выводит на экран информацию об этой службе:
Start-Service -Name Wsearch -PassThru
Командлет Restart-Service выполняет перезапуск (то есть остановку и последующий запуск) служб, указанных в качестве значения параметра -Name или полученных по конвейеру. Например, следующая команда перезапустит службу NetSetupSvc (Служба настройки сети):
Get-Service -Name NetSetupSvc | Restart-Service
Как изменить параметры службы
В Windows PowerShell имеется командлет Set-Service, позволяющий редактировать некоторые параметры служб, такие как, отображаемое имя (параметр -DisplayName), описание (параметр -Description), и тип запуска (параметр -StartupType).
Возможные значения параметра -StartupType: Automatic (служба запускается автоматически), Manual (служба запускается вручную), или Disabled (служба отключена). Имена изменяемых служб указываются в качестве значения -Name.
Следует отметить, что ни описание службы, ни тип запуска не являются свойствами объектов System.ServiceProcess.ServiceController, возвращаемых командлетом Get-Service. Это значит что командлет Get-Service не позволяет проверить чему равны значения данных параметров для определенной службы.
Решить эту проблему можно с помощью WMI-класса Win32_Service, который имеет свойства Description (описание службы) и StartMode (режим запуска службы). Теперь посмотрим, например, чему равно значение этих свойств для службы WSearch (служба индексирования контента):
Get-WmiObject Win32_Service -Filter «name = \’WSearch\'» | fl StartMode, Description
Выведенная информация показывает что служба индексирования контента запускается автоматически (значение свойства StartMode равно Auto ).
Теперь с помощью командлета Set-Service изменим режим запуска службы индексирования контента с автоматического на ручной, для этого выполните команду:
Set-Service -Name WSearch -StartupType Manual
Проверим проделанные изменения с помощью объекта Win32_Service, для этого выполните следующую команду:
Get-WmiObject Win32_Service -Filter «name = \’WSearch\'» | fl Name, StartMode
Значение свойства StartMode успешно изменено.
Killing a Windows Service that Hangs on Stopping or Not Responding
How to manually forcefully stop a hung Windows service process that hangs at “Stopping” or “Not responding”? Most Windows administrators have faced a problem, when they try to stop (restart) a service, but it gets stuck with the Stopping status. You won’t be able to stop this service from the Service management console (services.msc), since all control buttons for this service become inactive. The easiest way is to restart Windows, but it is not always acceptable. Let’s consider an alternative way, which allows to forcefully kill a stuck Windows service or process without system reboot.
If within 30 seconds after trying to stop the service, it doesn’t stop, Windows displays this message:
If you try to stop such a service from the command prompt: net stop wuauserv , a message appears:
The service is starting or stopping. Please try again letter.
How to Terminate a Hung Windows Service Process Using TaskKill?
The easiest way to stop a stuck service is to use taskkill. First of all, you need to find the PID (process identifier) of the service. As an example, let’s take Windows Update service, its system name is wuauserv (you can check the name in the service properties in the services.msc console).
Run this command in the elevated command prompt (it is important, or access denied error will appear):
sc queryex wuauserv
In our case the PID of the wuauserv service is 816.
To force stop a hung process with the PID 816, run the command:
taskkill /PID 816 /F
You can stop a hung service more elegantly without checking the service PID manually. The taskkill utility has the /FI option, which allows you to use a filter to select the necessary services or processes. You can shutdown a specific service with the command:
taskkill /F /FI «SERVICES eq wuauserv»
Or you can skip the service name at all and killing all services in a hung state with the command:
taskkill /F /FI «status eq not responding»
After this, the service that hangs in the Stopping status should stop.
PowerShell: Stop Windows Service with Stopping Status
You can also use PowerShell to force the service to stop. Using the following command you can get a list of services in the Stopping state:
Get-WmiObject -Class win32_service | Where-Object
The Stop-Process cmdlet allows to terminate the processes of all found services. Let’s combine both operations into a loop and get a script that automatically terminates all the processes of the stuck services:
$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»
>
Identify a Hang Process Using Resmon
You can detect the process that caused the service freeze using the resmon (Resource Monitor).
- In the Resource Monitor window, go to the CPU tab and locate the hung service process;
- Select the item Analyze Wait Chain from the context menu;
- In the new window, you will most likely see that your process is waiting for another process. End the process. If you are waiting for the svchost.exe or another system process, you don’t need to terminate it. Try to analyze the wait chain for this process. Find the PID of the process that your svchost.exe is waiting for and kill it.
Process Explorer: Killing a Hung Process Running in SYSTEM Context
Even the local administrator cannot terminate some processes that run in the SYSTEM context. The fact is that the admin account simply haven’t permissions on some processes or services. To stop such a process (services), you need to grant permissions to the service (process) to the local Administrators group, and then terminate them. To do this, we will need two small tools: psexec.exe and ProcessExplorer (available on the Microsoft website).
- To run ProcessExplorer with the system privileges (runas SYSTEM), run the utility in this way: PSExec -s -i ProcExp.exe
- In the Process Explorer process list, find the stuck service process and open its properties;
- Go to the Services tab, find your service and click the Permissions button;
- Grant the Full Control right in the service permissions for the Administrators group. Save the changes;
- Now try to stop the service process.