Share via


New-Service

Crea un nuovo servizio Windows.

Sintassi

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

Descrizione

Questo cmdlet è disponibile solo nella piattaforma Windows.

Il New-Service cmdlet crea una nuova voce per un servizio di Windows nel Registro di sistema e nel database del servizio. Un nuovo servizio richiede un file eseguibile che viene eseguito durante il servizio.

I parametri di questo cmdlet consentono di impostare il nome visualizzato, la descrizione, il tipo di avvio e le dipendenze del servizio.

Esempio

Esempio 1: Creare un servizio

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

Questo comando crea un servizio denominato TestService.

Esempio 2: Creare un servizio che include descrizione, tipo di avvio e nome visualizzato

$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

Questo comando crea un servizio denominato TestService. Usa i parametri di New-Service per specificare una descrizione, un tipo di avvio e un nome visualizzato per il nuovo servizio.

Esempio 3: Visualizzare il nuovo servizio

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

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

Questo comando usa Get-CimInstance per ottenere l'oggetto Win32_Service per il nuovo servizio. Questo oggetto include la modalità di avvio e la descrizione del servizio.

Esempio 4: impostare SecurityDescriptor di un servizio durante la creazione.

In questo esempio viene aggiunto il SecurityDescriptor del servizio da creare.

$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 viene archiviato nella $SDDLToSet variabile . Il parametro SecurityDescriptorSddl usa $SDDL per impostare SecurityDescriptor del nuovo servizio.

Parametri

-BinaryPathName

Specifica il percorso del file eseguibile per il servizio. Questo parametro è obbligatorio.

Percorso completo del file binario del servizio. Se il percorso contiene uno spazio, deve essere racchiuso tra virgolette in modo che venga interpretato correttamente. Ad esempio, d:\my share\myservice.exe deve essere specificato come '"d:\my share\myservice.exe"'.

Il percorso può includere anche argomenti per un servizio di avvio automatico. Ad esempio: '"d:\my share\myservice.exe" arg1 arg2'. Questi argomenti vengono passati al punto di ingresso del servizio.

Per altre informazioni, vedere il parametro lpBinaryPathName dell'API CreateServiceW .

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

-Confirm

Richiede conferma prima di eseguire il cmdlet.

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

-Credential

Specifica l'account usato dal servizio come account di accesso al servizio.

Digitare un nome utente, ad esempio User01 o Domain01\User01, oppure immettere un oggetto PSCredential, ad esempio uno generato dal Get-Credential cmdlet. Se si digita un nome utente, questo cmdlet richiede una password.

Le credenziali vengono archiviate in un oggetto PSCredential e la password viene archiviata come SecureString.

Nota

Per altre informazioni sulla protezione dei dati SecureString , vedere How secure is SecureString?.

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

-DependsOn

Specifica i nomi di altri servizi da cui dipende il nuovo servizio. Per immettere più nomi di servizio, usare la virgola per separare i nomi.

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

-Description

Specifica una descrizione del servizio.

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

-DisplayName

Specifica un nome visualizzato per il servizio.

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

-Name

Specifica il nome del server. Questo parametro è obbligatorio.

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

-SecurityDescriptorSddl

Specifica securityDescriptor per il servizio in formato Sddl.

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

-StartupType

Imposta il tipo di avvio del servizio. I valori validi per questo parametro sono:

  • Automatico : il servizio viene avviato o è stato avviato dal sistema operativo, all'avvio del sistema. Se un servizio ad avvio automatico dipende da un servizio ad avvio manuale, anche il servizio ad avvio manuale viene avviato automaticamente all'avvio del sistema.
  • AutomaticDelayedStart : viene avviato poco dopo l'avvio del sistema.
  • Disabilitato : il servizio è disabilitato e non può essere avviato da un utente o da un'applicazione.
  • InvalidValue : questo valore non è supportato. L'uso di questo valore genera un errore.
  • Manuale: il servizio viene avviato solo manualmente, da un utente, tramite Gestione controllo servizi o da un'applicazione.

Il valore predefinito è 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

Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.

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

Input

None

Non è possibile inviare tramite pipe oggetti a questo cmdlet.

Output

ServiceController

Questo cmdlet restituisce un oggetto che rappresenta il nuovo servizio.

Note

Questo cmdlet è disponibile solo nelle piattaforme Windows.

Per eseguire questo cmdlet, avviare PowerShell usando l'opzione Esegui come amministratore .