Condividi tramite


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

ServiceController

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.