Avvia, arresta e sospende un servizio e ne modifica le proprietà.

Sintassi

Set-Service [-Name] <string> [-Description <string>] [-DisplayName <string>] [-PassThru] [-StartupType {<Automatic> | <Manual> | <Disabled>}] [-Status <string>] [-ComputerName <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Set-Service [-Description <string>] [-DisplayName <string>] [-InputObject <ServiceController>] [-PassThru] [-StartupType {<Automatic> | <Manual> | <Disabled>}] [-Status <string>] [-ComputerName <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Il cmdlet Set-Service modifica le proprietà di un servizio locale o remoto, tra cui lo stato, la descrizione, il nome visualizzato e la modalità di avvio. È possibile utilizzare questo cmdlet per avviare, arrestare o sospendere un servizio. Per identificare il servizio, immetterne il nome, inviare un oggetto servizio o reindirizzare un nome di servizio o un oggetto servizio a Set-Service.

Parametri

-ComputerName <string[]>

Specifica uno o più computer. Il valore predefinito è il computer locale.

Digitare il nome NetBIOS, un indirizzo IP o un nome di dominio completo di un computer remoto. Per specificare il computer locale, digitare il nome del computer, un punto (.) o "localhost".

Questo parametro non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName di Set-Service anche se il computer non è configurato per l'esecuzione di comandi remoti.

Obbligatorio?

false

Posizione?

named

Valore predefinito

local computer

Accettare input da pipeline?

true (ByPropertyName)

Accettare caratteri jolly?

false

-Description <string>

Specifica una nuova descrizione per il servizio.

La descrizione del servizio viene visualizzato in Servizi in Gestione computer. La descrizione non è una proprietà dell'oggetto ServiceController ottenuto da Get-Service. Per visualizzare la descrizione del servizio, utilizzare Get-WmiObject per ottenere un oggetto Win32_Service che rappresenta il servizio.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-DisplayName <string>

Specifica un nuovo nome visualizzato per il servizio.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-InputObject <ServiceController>

Specifica un oggetto ServiceController che rappresenta il servizio da modificare. Immettere una variabile che contiene l'oggetto o digitare un comando o un'espressione che ottiene l'oggetto, ad esempio un comando Get-Service. È inoltre possibile reindirizzare un oggetto servizio a Set-Service.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

true (ByValue)

Accettare caratteri jolly?

false

-Name <string>

Specifica il nome del servizio da modificare. Non è consentito l'utilizzo di caratteri jolly. È inoltre possibile reindirizzare il nome di un servizio a Set-Service.

Obbligatorio?

true

Posizione?

1

Valore predefinito

Accettare input da pipeline?

true (ByValue, ByPropertyName)

Accettare caratteri jolly?

false

-PassThru

Restituisce oggetti che rappresentano i servizi modificati. Per impostazione predefinita, il cmdlet non genera alcun output.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-StartupType <ServiceStartMode>

Modifica la modalità di avvio del servizio. I valori validi per StartupType sono i seguenti:

-- Automatic: viene avviato all'avvio del sistema.

-- Manual: viene avviato solo se avviato da un utente o un programma.

-- Disabled: non può essere avviato.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Status <string>

Avvia, arresta o sospende i servizi. I valori validi sono:

-- Running: avvia il servizio.

-- Stopped: arresta il servizio.

-- Paused: sospende il servizio.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input

System.ServiceProcess.ServiceController, System.String

È possibile reindirizzare un oggetto servizio o una stringa che contiene un nome servizio a Set-Service.

Output

Nessuno

Questo cmdlet non restituisce alcun oggetto.

Note

Per utilizzare Set-Service in Windows Vista e nelle versioni successive di Windows, avviare Windows PowerShell con l'opzione "Esegui come amministratore".

Set-Service consente di controllare i servizi solo se l'utente corrente dispone delle autorizzazioni necessarie. Se un comando non viene eseguito correttamente, è possibile che l'utente non disponga delle autorizzazioni necessarie.

Per trovare i nomi dei servizi e i nomi visualizzati dei servizi nel sistema, digitare "Get-Service". I nomi dei servizi vengono visualizzati nella colonna Name e i nomi visualizzati vengono elencati nella colonna DisplayName.

Esempio 1

C:\PS>set-service -name lanmanworkstation -DisplayName "LanMan Workstation"

Descrizione
-----------
Tramite questo comando viene modificato il nome visualizzato del servizio lanmanworkstation in "LanMan Workstation". (Il nome predefinito è "Workstation").






Esempio 2

C:\PS>get-wmiobject win32_service -filter "name = 'SysmonLog'"

ExitCode  : 0
Name      : SysmonLog
ProcessId : 0
StartMode : Manual
State     : Stopped
Status    : OK

C:\PS> set-service sysmonlog -startuptype automatic

C:\PS> get-wmiobject win32_service -filter "name = 'SysmonLog'"

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

C:\PS> get-wmiobject win32_service | format-table Name, StartMode -auto

Name                                  StartMode
----                                  ---------
AdtAgent                              Auto
Alerter                               Disabled
ALG                                   Manual
AppMgmt                               Manual
...

Descrizione
-----------
Questi comandi ottengono il tipo di avvio del servizio Avvisi e registri di prestazioni (SysmonLog), impostano la modalità di avvio su Automatic e visualizzano il risultato della modifica.

Questi comandi utilizzano il cmdlet Get-WmiObject per ottenere l'oggetto Win32_Service per il servizio, perché l'oggetto ServiceController restituito da Get-Service non include la modalità di avvio.

Tramite il primo comando viene utilizzato il cmdlet Get-WmiObject per ottenere l'oggetto di Strumentazione gestione Windows (WMI) che rappresenta il servizio SysmonLog. L'output predefinito di questo comando visualizza la modalità di avvio del servizio. 

Tramite il secondo comando viene utilizzato Set-Service per modificare la modalità di avvio su automatic. Viene quindi ripetuto il primo comando per visualizzare la modifica.

Con il comando finale viene visualizzata la modalità di avvio di tutti i servizi nel computer.






Esempio 3

C:\PS>set-service -name Schedule -computername S1 -description "Configures and schedules tasks."

C:\PS> get-wmiobject win32_service -computername s1 | where-object {$_.Name -eq "Schedule"} | format-list Name, Description

Descrizione
-----------
Questi comandi modificano la descrizione del servizio Utilità di pianificazione nel computer remoto S1, quindi visualizzano il risultato.

Questi comandi utilizzano il cmdlet Get-WmiObject per ottenere l'oggetto Win32_Service per il servizio, perché l'oggetto ServiceController restituito da Get-Service non include la descrizione del servizio.

Tramite il primo comando viene utilizzato un comando Set-Service per modificare la descrizione. Il servizio viene identificato tramite il relativo nome, ovvero "Schedule".

Tramite il secondo comando viene utilizzato il cmdlet Get-WmiObject per ottenere un'istanza della classe WMI Win32_Service che rappresenta il servizio Utilità di pianificazione. Tramite il primo elemento del comando si ottengono tutte le istanze della classe Win32_service. 

Il risultato viene passato dall'operatore pipeline (|) al cmdlet Where-Object, il quale seleziona le istanze con un valore "Schedule" nella proprietà Name. 

Il risultato viene inviato da un altro operatore pipeline al cmdlet Format-List, il quale formatta l'output come elenco con le sole proprietà Name e Description.






Esempio 4

C:\PS>set-service winrm -status Running -passthru -computername Server02

Descrizione
-----------
Questo comando avvia il servizio WinRM nel computer Server02. In questo comando vengono utilizzati il parametro Status per specificare lo stato desiderato ("running") e il parametro PassThru per indicare a Set-Service di restituire un oggetto che rappresenta il servizio WinRM.






Esempio 5

C:\PS>get-service schedule -computername S1, S2 | set-service -status paused

Descrizione
-----------
Questo comando sospende il servizio di pianificazione (Schedule) nei computer remoti S1 e S2. Utilizza il cmdlet Get-Service per ottenere il servizio. Un operatore pipeline (|) invia il servizio al cmdlet Set-Service che modifica lo stato in "Paused".






Esempio 6

C:\PS>$s = get-service schedule

C:\PS> set-service -inputobject $s -status stopped

Descrizione
-----------
Questi comandi arrestano il servizio di pianificazione (Schedule) nel computer locale. 

Nel primo comando viene utilizzato il cmdlet Get-Service per ottenere il servizio di pianificazione (Schedule). Il servizio viene salvato nella variabile $s.

Nel secondo comando viene utilizzato il cmdlet Set-Service per modificare lo stato del servizio di pianificazione (Schedule) in "Stopped". Vengono utilizzati il parametro InputObject per inviare il servizio archiviato nella variabile $s e il parametro Status per specificare lo stato desiderato.






Vedere anche




Argomenti della Guida