Condividi tramite


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 cmdlet New-Service 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 in fase di creazione.

$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

Il securityDescriptor viene archiviato nella variabile $SDDLToSet. Il parametro SecurityDescriptorSddl usa $SDDL per impostare il 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.

Tipo:String
Alias:Path
Posizione:1
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Tipo:SwitchParameter
Alias:cf
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Credential

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

Digitare un nome utente, ad esempio User01 o Domain01\User01oppure immettere un oggetto PSCredential, ad esempio quello generato dal cmdlet Get-Credential. 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 ulteriori informazioni sulla protezione dei dati di SecureString, vedere Quanto è sicuro SecureString?.

Tipo:PSCredential
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-DependsOn

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

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Description

Specifica una descrizione del servizio.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-DisplayName

Specifica un nome visualizzato per il servizio.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Name

Specifica il nome del servizio. Questo parametro è obbligatorio.

Tipo:String
Alias:ServiceName
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-SecurityDescriptorSddl

Specifica il SecurityDescriptor per il servizio in formato SDDL.

Tipo:String
Alias:sd
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-StartupType

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

  • Automatico: il servizio viene avviato o è stato avviato dal sistema operativo all'avvio. Se un servizio avviato automaticamente dipende da un servizio avviato manualmente, il servizio avviato manualmente viene avviato automaticamente anche 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 Service Control Manager o da un'applicazione.

Il valore predefinito è automatico.

Tipo:ServiceStartupType
Valori accettati:Automatic, Manual, Disabled, AutomaticDelayedStart, InvalidValue
Posizione:Named
Valore predefinito:Automatic
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-WhatIf

Mostra cosa accadrebbe se il cmdlet viene eseguito. Il cmdlet non è stato eseguito.

Tipo:SwitchParameter
Alias:wi
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

None

Gli oggetti non possono essere inviati tramite pipe 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.