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

Как управлять службами в Windows

Что такое службы

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

Службы могут как относиться к операционной системе Windows, так и быть сторонними приложениями. Примеры служб, которые может установить сам пользователь: веб-сервер, удалённый рабочий стол VNC, SSH служба, служба СУБД MySQL.

Управлять службами можно:

  • в графическом интерфейсе
  • командной строке
  • в PowerShell

Настройка служб в графическом интерфейсе

Чтобы открыть менеджер служб, введите в поиск «Службы» и нажмите Enter:

Ещё один способ открыть это окно, нажать Win+r и ввести:

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

Типы запуска служб Windows

Windows 10 предлагает четыре типа запуска:

  • Автоматически
  • Автоматически (отложенный запуск)
  • Вручную
  • Отключена

Запуск, остановка, отключение служб Windows

Чтобы запустить, остановить, приостановить, возобновить или перезапустить любую службу Windows, выберите службу и щёлкните её правой кнопкой мыши. Вам будут предложены эти варианты.

Если вы хотите управлять дополнительными опциями, дважды щёлкните Сервис, чтобы открыть окно его свойств.

Здесь, в раскрывающемся меню Тип запуска, вы сможете выбрать тип запуска для Сервиса.

В разделе «Состояние службы» вы увидите кнопки «Запустить», «Остановить», «Приостановить», «Продолжить».

В окне «Свойства» вы также увидите другие вкладки, такие как «Вход в систему», «Восстановление» и «Зависимости», которые предлагают дополнительные параметры и информацию.

После внесения изменений вам нужно будет нажать «Применить».

Управление службами с помощью командной строки

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

Чтобы запустить службу:

Например, для запуска службы mysql:

Чтобы остановить службу:

Например, для остановки службы mysql:

Чтобы приостановить службу (не все службы возможно поставить на паузу!):

Чтобы возобновить службу:

Для отключения автозапуска службы:

Например, для отключения последующих запусков службы mysql:

Для включения автозапуска службы:

Например, для включения автозапуска службы mysql:

Перечисление состояний активных служб и драйверов

Перечисление только служб Win32

Для просмотра состояния определённой службы:

Например, чтобы увидеть состояние службы Apache2.4:

Управление службами Windows с помощью PowerShell

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

Как вы, возможно, знаете, одной из наиболее важных частей каждой операционной системы является служба, которая проходит через неё, и в целом можно сказать, что каждая часть операционной системы, которая запускается, имеет определённую службу, которой можно управлять и контролировать.

Вот подробное руководство по использованию PowerShell для управления службами Windows.

Запустите терминал PowerShell с правами администратора. Для этого нажмите Win+x и выберите Windows PowerShell (администратор):

Читайте также:  Windows не видит вебкамеру

Сначала вы должны получить список доступных служб, используя следующую команду:

Это образец вывода, который вы получите.

В выводе по умолчанию вы увидите 3 основных раздела: Status (Статус), Name (Имя) и DisplayName (Отображаемое имя). Теперь, если вы хотите найти и перечислить конкретный сервис, вы можете отфильтровать любой из параметров.

Показать все службы, названия которых начинаются с wi:

Показать все службы, отображаемые имена которых начинаются с win:

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

Важной частью управления услугами является управление зависимыми службами.

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

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

Таким образом, с помощью приведённых выше команд мы можем найти название службы, которая вам нужна, увидеть статус и связанные службы или их предварительные условия. Теперь рассмотрим команды управления службами.

Для остановки службы с помощью PowerShell вы можете использовать следующую команду:

Последующие примеры будут показываться на службе Apache2.4. То есть в следующих командах замените «Apache2.4» на имя интересующей вас службы.

Для запуска службы в PowerShell вы можете использовать эту команду:

Одной из наиболее часто используемых команд для работы со службами является команда перезапуска службы. Структура команды перезапуска службы такова:

И наконец, следующая команда используется для временного приостановления службы.

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

В качестве ТИП_ЗАПУСКА могут быть:

  • Automatic — служба будет запущена или была запущена операционной системой при запуске системы. Если автоматически запускаемая служба зависит от запускаемой вручную службы, запускаемая вручную служба также запускается автоматически при запуске системы.
  • AutomaticDelayedStart — запускается вскоре после загрузки системы.
  • Disabled — служба отключена и не может быть запущена пользователем или приложением.
  • InvalidValue — не имеет никакого эффекта. Командлет не возвращает ошибку, но StartupType службы не изменяется.
  • Manual — служба запускается только вручную, пользователем, с помощью диспетчера управления службами или приложением.

Это наиболее часто используемые команды для управления службами в PowerShell. Для получения дополнительной информации о командах PowerShell и о том, как они работают, используйте команду Get-Help.

Просмотр настроенных служб Windows

Чтобы получить список всех служб, настроенных в системе Windows, введите в командной строке команду: sc query type= service state= all или sc ИмяСервера query type= service state= all

Запустив команду SC query, вы увидите, что ее вывод очень длинный, поэтому лучше использовать фильтры для получения только нужной информации. Например, если в выводе следу­ющей команды будут содержаться лишь самые важные поля: sc query type= service

Если вам известно имя нужной службы, вы можете полу­чить информацию о ее конфигурации командой SC qc. Ее син­таксис таков: sc qc ИмяСлужбы

где ИмяСлужбы — имя службы, информацию о которой вы хотите получить. Вывод для отдельной службы выглядит так:

Обратите внимание, что в выводе не сообщается о текущем состоянии службы. Но в нем показывается следующее.

  • Binary Path Name — путь и имя исполняемого файла службы.
  • Dependencies — службы, которые должны работать, чтобы работала и указанная вами служба.
  • Display Name — описательное имя службы.
  • Service Start Name — имя учетной записи пользователя, от имени которого служба регистрируется в системе.
  • Start Туре — стартовая конфигурация службы.

Если служба настроена на автоматический запуск, сообщается AUTO_START, а если она настроена на запуск вручную — DEMAND_START. Для отключенных служб указывается DISABLED. Туре — тип службы и является ли она общим процессом (shared process).

Читайте также:  Astra linux sudo это

Запуск, останов и приостановка служб

Как администратору, вам придется часто запускать, останавли­вать или приостанавливать службы Windows. Вот соответству­ющие команды SC и их синтаксис.

  • Запуск службы: sc start ИмяСлужбы
  • Приостановка службы: sc pause ИмяСлужбы
  • Возобновление работы приостановленной службы: sc continue ИмяСлужбы
  • Останов службы: sc stop ИмяСлужбы

где ИмяСлужбы — сокращенное имя нужной вам службы.

Настройка запуска службы

Службы Windows можно настроить на автоматический запуск или запуск вручную. Кроме того, их можно вовсе выключить. Запуск служб настраивается командой:

  • sc config ИмяСлужбы start= флаг

где ИмяСлужбы — сокращенное имя нужной службы, а флаг. — используемый тип запуска. Для служб допустимыми зна­чениями флага являются:

  • Auto — запуск службы при старте системы;
  • Demand — позволяет запустить службу вручную;
  • Disabled — отключает службу.

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

  • sc config w3svc start= auto

Управление службами Windows с помощью PowerShell

В Windows вы можете управлять службами не только из графической консоли services.msc или утилиты командной строки Sc.exe (первоначальна включалась в пакет ресурсов Resource Kit), но и с помощью PowerShell. В этой статье мы смотрим различные сценарии управления службами Windows с помощью PowerShell.

Основные командлеты PowerShell для управления службами Windows

Существует восемь основных командлетов Service, предназначенных для просмотра состояния и управления службами Windows.

Чтобы получить весь список командлетов Service, введите команду:

  • Get-Service — позволяет получить службы на локальном или удаленном компьютере, как запущенные, так и остановленные;
  • New-Service – создать службу. Создает в реестре и базе данных служб новую запись для службы Windows;
  • Restart-Service – перезапустить службу. Передает сообщение об перезапуске службы через Windows Service Controller
  • Resume-Service – возобновить службы. Отсылает сообщение о возобновлении работы диспетчеру служб Windows;
  • Set-Service — изменить параметры локальной или удаленной службы, включая состояние, описание, отображаемое имя и режим запуска. Этот командлет также можно использовать для запуска, остановки или приостановки службы;
  • Start-Service – запустить службу;
  • Stop-Service – остановить службу (отсылает сообщение об остановке диспетчеру служб Windows);
  • Suspend-Service приостановить службу. Приостановленная служба по-прежнему выполняется, однако ее работа прекращается до возобновления работы службы, например с помощью командлета Resume-Service.

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

Get-Service: получаем список служб и их состояние

Получить список и состояние (Running/Stopped) службы на локальном или удаленном компьютере можно с помощью командлета Get-Service. Параметр -Name позволяет делать отбор по имени службы. Имя службы можно задать с использованием подстановочного символа *.

Если вы не знаете точное имя службы, есть возможность найти службы по отображаемому имени с помощью параметра –DisplayName. Можно использовать список значений и подстановочные знаки.

.

Командлет Get-Service можно использовать для получения состояния служб на удаленных компьютерах, указав параметр -ComputerName. Можно опросить статус службы сразу на множестве удаленных компьютеров, их имена нужно перечислить через запятую. Например, приведенная ниже команда получает состояние службы Spooler на удаленных компьютерах RM1 и RM2.

Get-Service spooler –ComputerName RM1,RM2

Вывести все свойства службы позволит командлет Select-Object:

Get-Service spooler | Select-Object *

Командлет Select-Object позволит вывести определенные свойства службы. Например, нам нужно вывести имя, статус и доступные возможности службы Spooler:

Get-Service Spooler | Select DisplayName,Status,ServiceName,Can*

Командлет Get-Service имеет два параметра, которые позволяют получить зависимости служб:

  • Параметр -DependentServices позволяет вывести службы, которые зависят от данной службы;
  • Параметр -RequiredServices позволяет вывести службы, от которых зависит данная служба.

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

Get-Service –Name Spooler -RequiredServices

Следующая команда выводит службы, которые зависят от службы Spooler:

Get-Service –Name Spooler -DependentServices

При необходимости найти службы с определенным состоянием или параметрами, используйте командлет Where-Object. Например, получим список запущенных служб со статусом Running:

Читайте также:  Hp 1200 all in one драйвера для windows

Для вывода служб с типом запуска Manual, выполните команду

Проверить, что в системе имеется указанная служба:

if (Get-Service «ServiceTest» -ErrorAction SilentlyContinue)
<
Write-host «ServiceTest exists»
>

Остановка, запуск, приостановка и перезапуск служб из PowerShell

Остановить службу можно с помощью командлета Stop-Service. Чтобы остановить службу печати, выполните команду:

Stop-Service -Name spooler

Командлет Stop-Service не выводит никаких данных после выполнения. Чтобы увидеть результат выполнения команды, используйте параметр -PassThru.

Обратите внимание, что не каждую службу можно остановить. Если есть зависимые службы, то получите ошибку

Для принудительной остановки используйте параметр –Force. Вы должны помнить, что остановятся также все зависимые службы:

Stop-Service samss –Force -Passthru

Следующая команда остановит перечисленные службы (bits,spooler) со статусом ”Running”:

get-service bits,spooler | where <$_.status -eq 'running'>| stop-service –passthru

Командлет Start-Service запускает остановленные службы:

Start-Service -Name spooler -PassThru

Служба не запустится, если есть остановленные зависимые службы. Чтобы их найти и включить:

get-service samss | Foreach

Командлет Suspend-Service может приостанавливать службы, допускающие временную приостановку и возобновление. Для получения сведений о возможности временной приостановки конкретной службы используйте командлет Get-Service со свойством «CanPauseAndContinue«.

Get-Service samss | Format-List name, canpauseandcontinue

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

Приостановим службу SQLBrowser:

Suspend-Service -Name SQLBrowser

Для возобновления работы приостановленной службы служит командлет Resume-service:

Resume-Service -Name SQLBrowser

Следующая команда возобновляет работу всех приостановленных служб:

get-service | where-object <$_.Status -eq "Paused">| resume-service

Командлет Restart-Service перезапускает службу:

Restart-Service -Name spooler

Эта команда запускает все остановленные сетевые службы компьютера:

get-service net* | where-object <$_.Status -eq "Stopped">| restart-service

Параметр —ComputerName у этих командлетов отсутствует, но их можно выполнить на удаленном компьютере с помощью командлета Invoke-Command или через пайп:

Например, чтобы перезапустите очередь печати на удаленном компьютере RM1, выполните команду:
Get-Service Spooler -ComputerName RM1 | Start-Service

Set-Service – изменение настроек службы Windows

Командлет Set-Service позволяет изменить параметры или настройки служб на локальном или удаленном компьютере. Так как состояние службы является свойством, этот командлет можно использовать для запуска, остановки и приостановки службы. Командлет Set-Service имеет параметр -StartupType, позволяющий изменять тип запуска службы.

Изменим тип запуска службы spooler на автоматический:

Set-Service spooler –startuptype automatic –passthru

Можно перевести службу на ручной (manual) запуск:

Set-Service spooler –startuptype manual –passthru

Создание и удаление служб Windows c помощью PowerShell

New-Service – командлет для создания новой службы в Windows. Для новой службы требуется указать имя и исполняемый файл (вы можете запустить PowerShell скрипт как службу Windows).

В примере создадим новую службу с именем TestService.

new-service -name TestService -binaryPathName «C:\WINDOWS\System32\svchost.exe -k netsvcs»

С помощью параметра Get-WmiObject получим информацию о режиме запуска и описание службы

get-wmiobject win32_service -filter «name=’testservice'»

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

Set-Service -Name TestService -Description ‘My Service’ -StartupType Manual

Чтобы удалить службу используйте команду

(Get-WmiObject win32_service -Filter ″name=′TestService′″).delete()

Изменение учетной записи для запуска службы

Вы можете изменить учетную запись, из-под которой запускается служба. Получим имя учетной записи, которая используется для запуска службы TestService

get-wmiobject win32_service -filter «name=’TestService'» | Select name,startname

Для изменения имени и пароля учетной записи выполняем команды.

$svc = get-wmiobject win32_service -filter «name=’TestService'»
$svc.GetMethodParameters(«change»)

В результате получаем список параметров метода Change(). Считаем на каком месте находятся параметры StartName и StartPassword – 20 и 21 место соответственно.

$svc | Invoke-WmiMethod -Name Change –ArgumentList @ ($null,$null,$null,$null,$null,$null,$null, $null,$null,$null,$null,$null,$null,$null,$null,$null, $null,$null,$null,»Administrator»,»P@ssw0rd»)

Либо вы можете указать имя gMSA аккаунта. Пароль при этом не указывается.

Как видите, PowerShell позволяет легко управлять службами Windows. Можно создавать, останавливать, запускать и возобновлять службы, менять их свойства. Большинство командлетов позволяют управлять службами на удаленных компьютерах.

Оцените статью