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

0
  • Не нравится
  • +22
  • Нравится

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

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

Служба (service) - это процесс, который запускается на устройстве в фоновом режиме для выполнения определенных действий в ответ на запросы пользователей, приложений, системы.

 Состав имеющихся в наличии и запущенных служб зависит от версии операционной системы и установленных в ней приложений.

 Основным инструментом для управления службами в графическом режиме на локальном компьютере является консоль Службы, которая находится в программной группе Средства администрирования Windows. Запустить консоль Службы также можно выполнив команду services.msc в диалоговом окне Выполнить. Также в состав всех версий операционной системы Windows, входит стандартная утилита net.exe командного интерпретатора cmd.exe, в которой для управления службами предусмотрены команды net start и net stop.


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

Как просмотреть список служб в Windows PowerShell
Запустите консоль Windows PoweShell с административными привилегиями.
 Чтобы получить список служб зарегистрированных на локальном компьютере, используйте командлет:
Get-Service
 На скриншоте ниже видно, что по умолчанию отображаются имя службы (колонка Name), её отображаемое имя (колонка DisplayName) и состояние (колонка Status).

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

 Для того чтобы отобразить только работающие в данный момент службы, то нужно отфильтровать объекты, у которых значением свойства Status является строка "Running". Для этого выполните команду:
Get-Service | Where-Object {$_.Status -eq "Running"}

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

 Чтобы просмотреть службы зарегистрированные на удалённом компьютере, можно воспользоваться 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

Как остановить или приостановить службы
в Windows PowerShell
 Локальную службу можно остановить с помощью командлета Stop-Service. Параметр -Name задает имя службы для остановки, параметр -Force позволяет остановить указанную службу вместе со всеми службами зависящими от нее. Например следующая команда остановит службу Spooler (Диспетчер печати) со всеми зависящими от нее службами:
Stop-Service -Name Spooler -Force

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

 По умолчанию команлет Stop-Service не передает далее по конвейеру объекты, соответствующие останавливаемым службам, и поэтому на экране ничего не отображается. Для остановки служб с выводом информации нужно указать параметр -PassThru, например выполните команду:
Stop-Service -Name Spooler -Force -PassThru

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

 Командлет Suspend-Service позволяет приостановить работу одной или нескольких служб, имена которых задаются в качестве параметра -Name. При приостановке (временной остановке) службы, она продолжает выполняться, однако её действия приостанавливаются до поступления команды на возобновление работы.
 Также следует учитывать, что не всякую службу можно приостановить.
 У объектов System.ServiceProcess.ServiceController, соответствующих службам, имеется логическое свойство CanPauseAndContinue, которое равно $True, если служба может быть приостановлена. Следующая команда приостановит все службы, для которых это возможно:
Get-Service | Where-Object {$_.CanPauseAndContinue} | Suspend-Service -PassThru

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

 Для остановки или приостановки служб на удалённом компьютере можно воспользоваться соответственно методами StopService и PauseService WMI-класса Win32_Service.


Как запустить или перезапустить службу в Windows PowerShell
 Запустить службу на локальном компьютере можно с помощью командлета Start-Service. В качестве значения параметра Name указывается имя запускаемой службы. Как и в предыдущих командлетах *-Service, после запуска службы на экран не выводится никакого сообщения. Для вывода информации можно использовать параметр -PassThru. Например, следующая команда запускает службу WSearch (служба индексирования контента) и выводит на экран информацию об этой службе:
Start-Service -Name Wsearch -PassThru

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

 Командлет Restart-Service выполняет перезапуск (то есть остановку и последующий запуск) служб, указанных в качестве значения параметра -Name или полученных по конвейеру. Например, следующая команда перезапустит службу NetSetupSvc (Служба настройки сети):
Get-Service -Name NetSetupSvc | Restart-Service

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

Как изменить параметры службы
 В 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).

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

 Теперь с помощью командлета Set-Service изменим режим запуска службы индексирования контента с автоматического на ручной, для этого выполните команду:
Set-Service -Name WSearch -StartupType Manual

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

 Проверим проделанные изменения с помощью объекта Win32_Service, для этого выполните следующую команду:
Get-WmiObject Win32_Service -Filter "name = 'WSearch'" | fl Name, StartMode
 Значение свойства StartMode успешно изменено.

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

 Чтобы удалить службу, нужно использовать средство настройки диспетчера служб sc.exe, о том как это сделать, читайте в статье Как удалить службу в Windows 10



winnote Администраторы

Автор: winnote

Комментариев пока нет, добавьте свой!

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.