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


New-Service

Создает новую службу Windows.

Синтаксис

New-Service
   [-Name] <String>
   [-BinaryPathName] <String>
   [-DisplayName <String>]
   [-Description <String>]
   [-SecurityDescriptorSddl <String>]
   [-StartupType <ServiceStartupType>]
   [-Credential <PSCredential>]
   [-DependsOn <String[]>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Описание

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

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

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

Примеры

Пример 1. Create службы

New-Service -Name "TestService" -BinaryPathName 'C:\WINDOWS\System32\svchost.exe -k netsvcs'

Эта команда создает службу с именем TestService.

Пример 2. Create службы, которая включает описание, тип запуска и отображаемое имя

$params = @{
  Name = "TestService"
  BinaryPathName = 'C:\WINDOWS\System32\svchost.exe -k netsvcs'
  DependsOn = "NetLogon"
  DisplayName = "Test Service"
  StartupType = "Manual"
  Description = "This is a test service."
}
New-Service @params

Эта команда создает службу с именем TestService. Он использует параметры для New-Service указания описания, типа запуска и отображаемого имени для новой службы.

Пример 3. Просмотр новой службы

Get-CimInstance -ClassName Win32_Service -Filter "Name='testservice'"

ExitCode  : 0
Name      : testservice
ProcessId : 0
StartMode : Auto
State     : Stopped
Status    : OK

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

Пример 4. Установка securityDescriptor службы при создании.

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

$SDDL = "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;SU)"
$params = @{
  BinaryPathName = 'C:\WINDOWS\System32\svchost.exe -k netsvcs'
  DependsOn = "NetLogon"
  DisplayName = "Test Service"
  StartupType = "Manual"
  Description = "This is a test service."
  SecurityDescriptorSddl = $SDDL
}
New-Service @params

SecurityDescriptor хранится в переменной $SDDLToSet . Параметр SecurityDescriptorSddl использует $SDDL для задания SecurityDescriptor новой службы.

Параметры

-BinaryPathName

Указывает путь к исполняемому файлу службы. Это обязательный параметр.

Полный путь к двоичному файлу службы. Если путь содержит пробел, он должен быть заключен в кавычки, чтобы он правильно интерпретировался. Например, d:\my share\myservice.exe должен быть указан как '"d:\my share\myservice.exe"'.

Путь также может содержать аргументы для службы автоматического запуска. Например, '"d:\my share\myservice.exe" arg1 arg2'. Эти аргументы передаются в точку входа службы.

Дополнительные сведения см. в разделе параметр lpBinaryPathName API CreateServiceW .

Type:String
Aliases:Path
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

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

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

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

-DependsOn

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

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

-Description

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

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

-DisplayName

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

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

-Name

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

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

-SecurityDescriptorSddl

Указывает securityDescriptor для службы в формате Sddl .

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

-StartupType

Задает тип запуска службы. Допустимые значения для этого параметра:

  • Автоматически — служба запущена или запущена операционной системой при запуске системы. Если служба, запускаемая автоматически, зависит от службы, запускаемой вручную, запускаемая вручную служба также запускается автоматически при запуске системы.
  • AutomaticDelayedStart — запускается вскоре после загрузки системы.
  • Отключено — служба отключена и не может быть запущена пользователем или приложением.
  • InvalidValue — это значение не поддерживается. Использование этого значения приводит к ошибке.
  • Вручную . Служба запускается только вручную, пользователем, с помощью диспетчера управления службами или приложением.

Значение по умолчанию — Automatic.

Type:ServiceStartupType
Accepted values:Automatic, Manual, Disabled, AutomaticDelayedStart, InvalidValue
Position:Named
Default value:Automatic
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

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

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

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

None

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

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

ServiceController

Этот командлет возвращает объект , представляющий новую службу.

Примечания

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

Чтобы выполнить этот командлет, запустите PowerShell с помощью параметра Запуск от имени администратора .