Partilhar via


New-Service

Cria um novo serviço Windows.

Syntax

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

Description

Este cmdlet só está disponível na plataforma do Windows.

O New-Service cmdlet cria uma nova entrada para um serviço Windows no registo e na base de dados de serviço. Um novo serviço requer um ficheiro executável que é executado durante o serviço.

Os parâmetros deste cmdlet permitem-lhe definir o nome a apresentar, a descrição, o tipo de arranque e as dependências do serviço.

Exemplos

Exemplo 1: Create um serviço

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

Este comando cria um serviço com o nome TestService.

Exemplo 2: Create um serviço que inclui a descrição, o tipo de arranque e o nome a apresentar

$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

Este comando cria um serviço com o nome TestService. Utiliza os parâmetros de New-Service para especificar uma descrição, tipo de arranque e nome a apresentar para o novo serviço.

Exemplo 3: Ver o novo serviço

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

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

Este comando utiliza Get-CimInstance para obter o objeto Win32_Service para o novo serviço. Este objeto inclui o modo de início e a descrição do serviço.

Exemplo 4: Defina o SecurityDescriptor de um serviço ao criar.

Este exemplo adiciona o SecurityDescriptor do serviço que está a ser criado.

$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

O SecurityDescriptor é armazenado na $SDDLToSet variável. O parâmetro SecurityDescriptorSddl utiliza $SDDL para definir o SecurityDescriptor do novo serviço.

Parâmetros

-BinaryPathName

Especifica o caminho do ficheiro executável para o serviço. Este parâmetro é necessário.

O caminho completamente qualificado para o ficheiro binário do serviço. Se o caminho contiver um espaço, tem de ser citado para que seja corretamente interpretado. Por exemplo, d:\my share\myservice.exe deve ser especificado como '"d:\my share\myservice.exe"'.

O caminho também pode incluir argumentos para um serviço de início automático. Por exemplo, '"d:\my share\myservice.exe" arg1 arg2'. Estes argumentos são transmitidos para o ponto de entrada de serviço.

Para obter mais informações, veja o parâmetro lpBinaryPathName da API CreateServiceW .

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

-Confirm

Solicita a sua confirmação antes de executar o cmdlet.

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

-Credential

Especifica a conta utilizada pelo serviço como Conta de Início de Sessão do Serviço.

Escreva um nome de utilizador, como User01 ou Domain01\User01, ou introduza um objeto PSCredential , como um Get-Credential gerado pelo cmdlet. Se escrever um nome de utilizador, este cmdlet pede-lhe uma palavra-passe.

As credenciais são armazenadas num objeto PSCredential e a palavra-passe é armazenada como secureString.

Nota

Para obter mais informações sobre a proteção de dados SecureString , veja Quão seguro é o SecureString?.

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

-DependsOn

Especifica os nomes de outros serviços de que depende o novo serviço. Para introduzir vários nomes de serviço, utilize uma vírgula para separar os nomes.

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

-Description

Especifica uma descrição do serviço.

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

-DisplayName

Especifica um nome a apresentar para o serviço.

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

-Name

Especifica o nome do serviço. Este parâmetro é necessário.

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

-SecurityDescriptorSddl

Especifica o SecurityDescriptor para o serviço no formato Sddl .

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

-StartupType

Define o tipo de arranque do serviço. Os valores aceitáveis para este parâmetro são:

  • Automático – o serviço é iniciado ou iniciado pelo sistema operativo, na start-up do sistema. Se um serviço iniciado automaticamente depender de um serviço iniciado manualmente, o serviço iniciado manualmente também será iniciado automaticamente no arranque do sistema.
  • AutomaticDelayedStart – é iniciado pouco depois de o sistema arrancar.
  • Desativado – o serviço está desativado e não pode ser iniciado por um utilizador ou aplicação.
  • InvalidValue - Este valor não é suportado. A utilização deste valor resulta num erro.
  • Manual – o serviço é iniciado apenas manualmente, por um utilizador, através do Service Control Manager ou de uma aplicação.

O valor predefinido é Automático.

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

Apresenta o que aconteceria mediante a execução do cmdlet. O cmdlet não é executado.

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

Entradas

None

Não pode encaminhar objetos para este cmdlet.

Saídas

ServiceController

Este cmdlet devolve um objeto que representa o novo serviço.

Notas

Este cmdlet só está disponível nas plataformas do Windows.

Para executar este cmdlet, inicie o PowerShell com a opção Executar como administrador .