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