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 Workstation.

Пример 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 задает для службы значение Автоматически.

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 использует значение Выполняется для запуска службы. Параметр 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объект . Параметр Status задает для службы значение Остановлено.

Пример 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 для указания службы расписания . Объект хранится в переменной . $S

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

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

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

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

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

Пример 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.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

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

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

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

Примечание

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

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

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

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

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisplayName

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

Примечание

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

Type:String
Aliases:DN
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

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

Type:ServiceController
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

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

Примечание

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

Type:String
Aliases:ServiceName, SN
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PassThru

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SecurityDescriptorSddl

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

Type:String
Aliases:sd
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StartupType

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

Ниже приведены допустимые значения для этого параметра.

  • Автоматически — служба запущена или запущена операционной системой при запуске системы. Если служба, запускаемая автоматически, зависит от службы, запускаемой вручную, запускаемая вручную служба также запускается автоматически при запуске системы.
  • AutomaticDelayedStart — запускается вскоре после загрузки системы.
  • Отключено — служба отключена и не может быть запущена пользователем или приложением.
  • InvalidValue — не действует. Командлет не возвращает ошибку, но startupType службы не изменяется.
  • Вручную . Служба запускается только вручную, пользователем, с помощью диспетчера управления службами или приложением.
Type:ServiceStartupType
Aliases:StartMode, SM, ST, StartType
Accepted values:Automatic, AutomaticDelayedStart, Disabled, InvalidValue, Manual
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Status

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

Ниже приведены допустимые значения для этого параметра.

  • Приостановлено. приостанавливает службу.
  • Выполняется. запускает службу.
  • Остановлен. останавливает службу.
Type:String
Accepted values:Paused, Running, Stopped
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

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

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

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

ServiceController

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

String

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

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

None

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

ServiceController

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

Примечания

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

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

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

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