New-Service
Crea un nuovo servizio Windows.
Sintassi
New-Service
[-Name] <String>
[-BinaryPathName] <String>
[-DisplayName <String>]
[-Description <String>]
[-StartupType <ServiceStartMode>]
[-Credential <PSCredential>]
[-DependsOn <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Descrizione
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: Eliminare un servizio
sc.exe delete TestService
# - or -
(Get-CimInstance -Class Win32_Service -Filter "name='TestService'").delete()
Questo esempio illustra due modi per eliminare il servizio TestService. Il primo comando usa l'opzione delete di Sc.exe
. Il secondo comando usa il metodo Delete degli oggetti Win32_Service restituiti Get-CimInstance
.
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 |
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 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?.
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 la 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 server. Questo parametro è obbligatorio.
Tipo: | String |
Alias: | ServiceName |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.
- Disabilitato : il servizio è disabilitato e non può essere avviato da un utente o da un'applicazione.
- Manuale: il servizio viene avviato solo manualmente, da un utente, tramite Gestione controllo servizi o da un'applicazione.
- Avvio : indica che il servizio è un driver di dispositivo avviato dal caricatore di sistema. Questo valore è valido solo per i driver di dispositivo.
- System : indica che il servizio è un driver di dispositivo avviato dalla funzione 'IOInitSystem()'. Questo valore è valido solo per i driver di dispositivo.
Il valore predefinito è Automatic.
Tipo: | ServiceStartMode |
Valori accettati: | Boot, System, Automatic, Manual, Disabled |
Posizione: | Named |
Valore predefinito: | Automatic |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-WhatIf
Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.
Tipo: | SwitchParameter |
Alias: | wi |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
None
Non è possibile inviare tramite pipe oggetti a questo cmdlet.
Output
Questo cmdlet restituisce un oggetto che rappresenta il nuovo servizio.
Note
Per eseguire questo cmdlet, avviare PowerShell usando l'opzione Esegui come amministratore .
Per eliminare un servizio, utilizzare Sc.exe oppure usare il Get-CimInstance
cmdlet per ottenere l'oggetto Win32_Service che rappresenta il servizio e quindi usare il metodo Delete per eliminare il servizio. L'oggetto restituito Get-Service
non dispone di un metodo delete.