Способы управления службами windows

Управление службами 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:

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

Читайте также:  История windows или dos операционная система

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

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

Читайте также:  Топ приложений linux mint

Службы Windows – фоновые функции операционной системы

Вы когда-нибудь задумывались, сколько функций Windows работает одновременно, даже если у них нет сложного интерфейса? Что ж, это всё службы Windows, которые работают в фоновом режиме, чтобы выполнять свою работу, не мешая вам.

Windows автоматически находит обновления, проверяет стабильность системы, подстраиваем время обновлений в зависимости от текущего часового пояса, записывает события и защищает систему от угроз. У всех этих функций нет работающего приложения на рабочем столе, тогда как ими управлять?

В этом посте мы подробно расскажем о службах Windows и о том, как вы можете настроить их в своих интересах.

Службы Windows в двух словах

Службы Windows – это, в основном, приложения, которые работают в фоновом режиме и предлагают свои «услуги». Эти службы выполняют большинство основных функций Windows, например подключение к внешним устройствам или создание стабильного подключения к Интернету.

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

Обычно эти службы запускаются в Windows (даже до того, как вы входите в систему) и ничто не указывают на то, что они запущены. Однако, поскольку эти службы напрямую влияют на работу с Windows, очень важно знать, как ими управлять.

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

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

Доступ к службам Windows

Есть много способов получить доступ к средству управления службами Windows. Вы можете получить к нему доступ из панели управления в разделе «Инструменты администратора» или введите «Службы Windows» в системном поиске Windows, чтобы получить к нему доступ. Другой простой способ – нажать клавиши Win + R и ввести services.msc в диалоговом окне «Выполнить», чтобы открыть консоль управления службами Windows.

Вы увидите все службы Windows, перечисленные в правом столбце, и их описание в левом столбце. Нажмите на любую из служб, и вы увидите подробную информацию в левом столбце.

Описание достаточно хорошее, чтобы понять, что делает служба, поэтому у вас не должно возникнуть проблем с определением функций каждой из службы и их влияния.

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

Вы можете принудительно запустить или остановить службу во время текущего сеанса Windows. Просто щелкните правой кнопкой мыши службу, и появится контекстное меню с пунктами Запустить или Остановить. Если служба уже запущена, можно будет использовать кнопку Остановить. В противном случае вы увидите Запустить, если служба не отключена.

Например, вы можете «Остановить» службу Центра обновления Windows, если выдаёт постоянные запросы. Имейте в виду, что служба будет автоматически запущена, когда вы перезагрузите компьютер, если её не отключить. Кроме того, есть вариант «Перезагрузки», которую можно использовать для перезапуска службы.

Свойства службы Windows

Окно «Свойства» – это самая важная часть консоли управления службами Windows, в которой перечислены все элементы управления и информация о службе. Щелкните правой кнопкой мыши службу и выберите Свойства.

Вот две важные вкладки: Общие и Зависимости. Ниже приводится объяснение каждой из них:

Читайте также:  All windows ctrl shortcuts

Общие свойства службы Windows

На вкладке Общие вы увидите путь к исполняемому файлу службы и описание того, что она делает. Вы также можете выбрать «Тип запуска», чтобы настроить запуск службы.

Там вы найдете четыре типа запуска:

  • Автоматически (отложенный запуск): как упоминалось ранее, службы запускаются в Windows ещё до того, как вы войдете в систему; это влияет на общее время загрузки. Если вы считаете, что вам не нужна конкретная служба немедленно, вы можете установить для неё Отложенный запуск, чтобы она запускалась после полной загрузки ПК. Это ускорит загрузку Windows.
  • Автоматически: любая служба, для которой установлен автоматический запуск, сразу же запускается вместе с Windows во время загрузки.
  • Вручную: если вы хотите запускать службу по запросу или только тогда, когда это требуется системе, вы можете установить для неё значение Вручную. Такая служба будет запускаться только тогда, когда используется связанное с ней приложение / функция или вы вручную запустите её. Помните, что этот параметр нарушит работу служб, которые зависят от мониторинга в реальном времени, например, службы обновления Windows / приложений.
  • Отключено: как следует из названия, это отключит службу и сделает её непригодной для использования.

Зависимости служб Windows

На этой вкладке перечислены все службы, зависящие от выбранной службы, а также службы, от которых зависит текущая выбранная служба. Прежде чем возиться с опциями «Тип запуска», проверьте все службы, которые зависят от службы.

Если вы отключите службу, все службы, которые от неё зависят, могут работать некорректно; или вообще не работать.

Использование служб Windows

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

Например, вы можете отключить службы факса, принтера или Bluetooth, если вы не используете их на своем ПК. Кроме того, вы также можете отключить такие службы, как брандмауэр Windows, если вы используете стороннее приложение брандмауэра.

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

Меры предосторожности

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

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

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

Несколько заключительных слов

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

Я лично просмотрел список и нашел несколько сервисов, которые стоит настроить и оптимизировать на моём компьютере. Я уверен, что вы тоже что-то найдёте.

Сообщите нам в комментариях о вашем опыте работы со службами Windows.

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