Поделиться через


Set-Service

Запускает, останавливает и приостанавливает службу и изменяет ее свойства.

Синтаксис

Set-Service
   [-Name] <String>
   [-DisplayName <String>]
   [-Credential <PSCredential>]
   [-Description <String>]
   [-StartupType <ServiceStartupType>]
   [-Status <String>]
   [-SecurityDescriptorSddl <String>]
   [-Force]
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-Service
   [-InputObject] <ServiceController>
   [-DisplayName <String>]
   [-Credential <PSCredential>]
   [-Description <String>]
   [-StartupType <ServiceStartupType>]
   [-SecurityDescriptorSddl <String>]
   [-Status <String>]
   [-Force]
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Описание

Этот командлет доступен только на платформе Windows.

Командлет Set-Service изменяет свойства службы, например status, description, DisplayName и StartupType. Set-Service может запускать, останавливать, приостановить или приостановить службу. Чтобы определить службу, введите имя службы или отправьте объект службы. Или отправьте имя службы или объект службы вниз конвейера Set-Service.

Примеры

Пример 1. Изменение отображаемого имени

В этом примере отображаемое имя службы изменяется. Чтобы просмотреть исходное отображаемое имя, используйте Get-Service.

Set-Service -Name LanmanWorkstation -DisplayName "LanMan Workstation"

Set-Serviceиспользует параметр Name, чтобы указать имя службы, LanmanWorkstation. Параметр DisplayName указывает новое отображаемое имя, Рабочая станция LanMan.

Пример 2. Изменение типа запуска служб

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

Set-Service -Name BITS -StartupType Automatic
Get-Service BITS | Select-Object -Property Name, StartType, Status

Name  StartType   Status
----  ---------   ------
BITS  Automatic  Running

Set-Serviceиспользует параметр Name, чтобы указать имя службы, BITS. Параметр StartupType задает для службы значение Automatic.

Get-Serviceиспользует параметр Name для указания службы BITS и отправки объекта вниз конвейера. Select-Objectиспользует параметр Property для отображения состояния службы BITS.

Пример 3. Изменение описания службы

В этом примере изменяется описание службы BITS и отображается результат.

Командлет Get-CimInstance используется, так как возвращает объект Win32_Service, включающий описание службы.

Get-CimInstance Win32_Service -Filter 'Name = "BITS"'  | Format-List  Name, Description

Name        : BITS
Description : Transfers files in the background using idle network bandwidth. If the service is
              disabled, then any applications that depend on BITS, such as Windows Update or MSN
              Explorer, will be unable to automatically download programs and other information.

Set-Service -Name BITS -Description "Transfers files in the background using idle network bandwidth."
Get-CimInstance Win32_Service -Filter 'Name = "BITS"' | Format-List  Name, Description

Name        : BITS
Description : Transfers files in the background using idle network bandwidth.

Get-CimInstance отправляет объект вниз конвейера Format-List и отображает имя и описание службы. Для сравнения команда выполняется до и после обновления описания.

Set-Serviceиспользует параметр Name для указания службы BITS. Параметр Description задает обновленный текст описания служб.

Пример 4. Запуск службы

В этом примере запускается служба.

Set-Service -Name WinRM -Status Running -PassThru

Status   Name               DisplayName
------   ----               -----------
Running  WinRM              Windows Remote Management (WS-Manag...

Set-Serviceиспользует параметр Name для указания службы WinRM. Параметр Status использует значение Running для запуска службы. Параметр PassThru выводит объект ServiceController , отображающий результаты.

Пример 5. Приостановка службы

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

Get-Service -Name Schedule | Set-Service -Status Paused

Get-Serviceиспользует параметр Name для указания службы Schedule и отправки объекта вниз по конвейеру. Set-Serviceиспользует параметр status, чтобы задать для службы значение "Приостановлено".

Пример 6. Остановка службы

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

$S = Get-Service -Name Schedule
Set-Service -InputObject $S -Status Stopped

Get-Serviceиспользует параметр Name для указания службы, расписания. Объект хранится в переменной. $S Set-Serviceиспользует параметр InputObject и задает сохраненный $Sобъект. Параметр "Состояние" задает для службы значение "Остановлено".

Пример 7. Остановка службы в удаленной системе

В этом примере служба останавливается на удаленном компьютере. Дополнительные сведения см. в разделе Invoke-Command.

$Cred = Get-Credential
$S = Get-Service -Name Schedule
Invoke-Command -ComputerName server01.contoso.com -Credential $Cred -ScriptBlock {
  Set-Service -InputObject $S -Status Stopped
}

Get-Credential запрашивает имя пользователя и пароль и сохраняет учетные данные в переменной $Cred . Get-Serviceиспользует параметр Name для указания службы Schedule. Объект хранится в переменной. $S

Invoke-Commandиспользует параметр ComputerName для указания удаленного компьютера. Параметр Credential использует $Cred переменную для входа на компьютер. Вызовы Set-ServiceScriptBlock. Параметр InputObject указывает сохраненный $Sобъект службы. Параметр "Состояние" задает для службы значение "Остановлено".

Пример 8. Изменение учетных данных службы

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

$credential = Get-Credential
Set-Service -Name Schedule -Credential $credential

Get-Credential запрашивает имя пользователя и пароль и сохраняет учетные данные в переменной $credential . Set-Serviceиспользует параметр Name для указания службы Schedule. Параметр Credential использует $credential переменную и обновляет службу Schedule .

Пример 9. Изменение securityDescriptor службы

В этом примере изменяется средство SecurityDescriptor службы.

$SDDL = "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;SU)"
Set-Service -Name "BITS" -SecurityDescriptorSddl $SDDL

SecurityDescriptor хранится в переменной$SDDL. Set-Serviceиспользует параметр Name для указания службы BITS. Параметр SecurityDescriptorSddl используется $SDDL для изменения securityDescriptor для службы BITS .

Пример 10. Установка типа запуска для нескольких служб

Командлет Set-Service принимает только одно имя службы за раз. Однако можно передать несколько служб, чтобы Set-Service изменить конфигурацию нескольких служб.

Get-Service SQLWriter,spooler |
    Set-Service -StartupType Automatic -PassThru |
    Select-Object Name, StartType

Name      StartType
----      ---------
spooler   Automatic
SQLWriter Automatic

Параметры

-Confirm

Запрашивает подтверждение перед выполнением Set-Service.

Тип:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Credential

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

Введите имя пользователя, например User01 или Domain01\User01, или введите объект PSCredential, например объект, созданный командлетомGet-Credential. При вводе имени пользователя этот командлет запрашивает пароль.

Учетные данные хранятся в объекте PSCredential , а пароль хранится как SecureString.

Примечание.

Дополнительные сведения о защите данных SecureString см. в разделе "Как безопасна Защита SecureString?".

Этот параметр появился в PowerShell 6.0.

Тип:PSCredential
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Description

Задает новое описание службы.

Описание службы отображается в разделе "Управление компьютерами", "Службы". Описание не является свойством Get-Service объекта ServiceController. Чтобы просмотреть описание службы, используйте Get-CimInstance этот объект Win32_Service , представляющий службу.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-DisplayName

Задает новое отображаемое имя службы.

Примечание.

Как правило, Set-Service работает только в службах Windows, а не драйверах. Тем не менее, если указать имя драйвера, Set-Service можно нацелить на драйвер.

Тип:String
Aliases:DN
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Force

Указывает режим остановки службы. Этот параметр работает только при -Status Stopped использовании. Если этот параметр включен, Set-Service остановите зависимые службы до остановки целевой службы. По умолчанию исключения возникают, когда другие запущенные службы зависят от целевой службы.

Тип:SwitchParameter
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-InputObject

Указывает объект ServiceController , представляющий службу для изменения. Введите переменную, содержащую объект, или введите команду или выражение, которое получает объект, например Get-Service команду. Конвейер можно использовать для отправки объекта Set-Serviceслужбы в .

Тип:ServiceController
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Name

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

Примечание.

Как правило, Set-Service работает только в службах Windows, а не драйверах. Тем не менее, если указать имя драйвера, Set-Service можно нацелить на драйвер.

Тип:String
Aliases:ServiceName, SN
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-PassThru

Возвращает объект ServiceController, представляющий измененные службы. По умолчанию Set-Service выходные данные не создаются.

Тип:SwitchParameter
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-SecurityDescriptorSddl

Указывает securityDescriptor для службы в формате Sddl . Для вызова Set-Service учетной записи с этим параметром должны быть разрешения WRITE_DAC и WRITE_OWNER. Дополнительные сведения см. в разделе "Безопасность службы" и права доступа.

Тип:String
Aliases:sd
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-StartupType

Указывает режим запуска службы.

Допустимые значения для этого параметра приведены следующим образом:

  • Автоматически — служба запущена или запущена операционной системой при запуске системы. Если служба, запускаемая автоматически, зависит от службы, запускаемой вручную, последняя также активируется автоматически при запуске системы.
  • AutomaticDelayedStart — начинается вскоре после загрузки системы.
  • Отключен . Служба отключена и не может быть запущена пользователем или приложением.
  • InvalidValue — не действует. Командлет не возвращает ошибку, но StartupType службы не изменяется.
  • Вручную . Служба запускается только вручную, пользователем, с помощью диспетчера управления службами или приложением.
Тип:ServiceStartupType
Aliases:StartMode, SM, ST, StartType
Допустимые значения:Automatic, AutomaticDelayedStart, Disabled, InvalidValue, Manual
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Status

Указывает состояние службы.

Допустимые значения для этого параметра приведены следующим образом:

  • Приостановлено. приостанавливает службу.
  • Работает. запускает службу.
  • Остановлено. останавливает службу.
Тип:String
Допустимые значения:Paused, Running, Stopped
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-WhatIf

Показывает, что произойдет при Set-Service выполнении. Командлет не выполняется.

Тип:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

Входные данные

ServiceController

Объект службы можно передать в этот командлет.

String

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

Выходные данные

None

По умолчанию этот командлет не возвращает выходные данные.

ServiceController

При использовании параметра PassThru этот командлет возвращает объект ServiceController .

Примечания

Этот командлет доступен только на платформах Windows.

Set-Service требует повышенных разрешений. Используйте параметр запуска от имени администратора.

Set-Service может управлять только службами, если у текущего пользователя есть разрешения на управление службами. Если команда не работает правильно, возможно, у вас нет необходимых разрешений.

Чтобы найти имя службы или отображаемое имя службы, используйте Get-Service. Имена служб находятся в столбце "Имя" , а отображаемые имена находятся в столбце DisplayName .