Set-Service
Avvia, arresta e sospende un servizio e ne modifica le proprietà.
Sintassi
Set-Service
[-Name] <String>
[-DisplayName <String>]
[-Credential <PSCredential>]
[-Description <String>]
[-StartupType <ServiceStartupType>]
[-Status <String>]
[-SecurityDescriptorSddl <String>]
[-Force]
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-Service
[-InputObject] <ServiceController>
[-DisplayName <String>]
[-Credential <PSCredential>]
[-Description <String>]
[-StartupType <ServiceStartupType>]
[-SecurityDescriptorSddl <String>]
[-Status <String>]
[-Force]
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Descrizione
Questo cmdlet è disponibile solo nella piattaforma Windows.
Il cmdlet Set-Service
modifica le proprietà di un servizio, ad esempio Status, Description, DisplayNamee StartupType.
Set-Service
può avviare, arrestare, sospendere o mettere in pausa un servizio. Per identificare un servizio, immettere il nome del servizio o inviare un oggetto servizio. In alternativa, inviare un nome del servizio o un oggetto servizio nella pipeline a Set-Service
.
Esempio
Esempio 1: Modificare un nome visualizzato
In questo esempio viene modificato il nome visualizzato di un servizio. Per visualizzare il nome visualizzato originale, usare Get-Service
.
Set-Service -Name LanmanWorkstation -DisplayName "LanMan Workstation"
Set-Service
usa il parametro Name per specificare il nome del servizio, LanmanWorkstation. Il parametro DisplayName specifica il nuovo nome visualizzato, LanMan Workstation.
Esempio 2: Modificare il tipo di avvio dei servizi
Questo esempio illustra come modificare il tipo di avvio di un servizio.
Set-Service -Name BITS -StartupType Automatic
Get-Service BITS | Select-Object -Property Name, StartType, Status
Name StartType Status
---- --------- ------
BITS Automatic Running
Set-Service
usa il parametro Name per specificare il nome del servizio, BITS. Il parametro StartupType imposta il servizio su Automatico.
Get-Service
usa il parametro Name per specificare il servizio BITS e invia l'oggetto nella pipeline.
Select-Object
usa il parametro Property per visualizzare lo stato del servizio BITS.
Esempio 3: Modificare la descrizione di un servizio
In questo esempio viene modificata la descrizione del servizio BITS e viene visualizzato il risultato.
Il cmdlet Get-CimInstance
è utilizzato perché restituisce un oggetto Win32_Service che include la Descrizione del servizio.
Get-CimInstance Win32_Service -Filter 'Name = "BITS"' | Format-List Name, Description
Name : BITS
Description : Transfers files in the background using idle network bandwidth. If the service is
disabled, then any applications that depend on BITS, such as Windows Update or MSN
Explorer, will be unable to automatically download programs and other information.
Set-Service -Name BITS -Description "Transfers files in the background using idle network bandwidth."
Get-CimInstance Win32_Service -Filter 'Name = "BITS"' | Format-List Name, Description
Name : BITS
Description : Transfers files in the background using idle network bandwidth.
Get-CimInstance
invia l'oggetto verso il basso nella pipeline a Format-List
e visualizza il nome e la descrizione del servizio. A scopo di confronto, il comando viene eseguito prima e dopo l'aggiornamento della descrizione.
Set-Service
usa il parametro Name per specificare il servizio BITS. Il parametro Description specifica il testo aggiornato per la descrizione dei servizi.
Esempio 4: Avviare un servizio
In questo esempio viene avviato un servizio.
Set-Service -Name WinRM -Status Running -PassThru
Status Name DisplayName
------ ---- -----------
Running WinRM Windows Remote Management (WS-Manag...
Set-Service
usa il parametro Name per specificare il servizio WinRM. Il parametro Status usa il valore Running per avviare il servizio. Il parametro PassThru restituisce un oggetto ServiceController che visualizza i risultati.
Esempio 5: Sospendere un servizio
In questo esempio viene usata la pipeline per sospendere il servizio.
Get-Service -Name Schedule | Set-Service -Status Paused
Get-Service
utilizza il parametro Name per specificare il servizio Schedule e invia l'oggetto lungo la pipeline.
Set-Service
usa il parametro Status per impostare il servizio su Sospeso.
Esempio 6: Arrestare un servizio
In questo esempio viene usata una variabile per arrestare un servizio.
$S = Get-Service -Name Schedule
Set-Service -InputObject $S -Status Stopped
Get-Service
usa il parametro Name per specificare il servizio Schedule. L'oggetto viene archiviato nella variabile $S
.
Set-Service
utilizza il parametro InputObject e specifica l'oggetto archiviato $S
. Il parametro Status imposta il servizio su Stopped.
Esempio 7: Arrestare un servizio in un sistema remoto
In questo esempio viene arrestato un servizio su un computer remoto. Per altre informazioni, vedere Invoke-Command.
$Cred = Get-Credential
$S = Get-Service -Name Schedule
Invoke-Command -ComputerName server01.contoso.com -Credential $Cred -ScriptBlock {
Set-Service -InputObject $S -Status Stopped
}
Get-Credential
richiede un nome utente e una password e archivia le credenziali nella variabile $Cred
.
Get-Service
usa il parametro Name per specificare il servizio Schedule. L'oggetto viene archiviato nella variabile $S
.
Invoke-Command
usa il parametro ComputerName per specificare un computer remoto. Il parametro Credential usa la variabile $Cred
per accedere al computer. Il ScriptBlock chiama Set-Service
. Il parametro InputObject specifica l'oggetto servizio archiviato $S
. Il parametro Status imposta il servizio su Stopped.
Esempio 8: Modificare le credenziali di un servizio
Questo esempio modifica le credenziali usate per gestire un servizio.
$credential = Get-Credential
Set-Service -Name Schedule -Credential $credential
Get-Credential
richiede un nome utente e una password e archivia le credenziali nella variabile $credential
.
Set-Service
usa il parametro Name per specificare il servizio Schedule. Il parametro Credential usa la variabile $credential
e aggiorna il servizio Schedule.
Esempio 9: Modificare securityDescriptor di un servizio
In questo esempio viene modificato il SecurityDescriptor di un servizio.
$SDDL = "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;SU)"
Set-Service -Name "BITS" -SecurityDescriptorSddl $SDDL
Il securityDescriptor viene archiviato nella variabile $SDDL
.
Set-Service
usa il parametro Name per specificare il servizio BITS. Il parametro SecurityDescriptorSddl usa $SDDL
per modificare il SecurityDescriptor per il servizio BITS .
Esempio 10: Impostare il tipo di avvio per più servizi
Il cmdlet Set-Service
accetta un solo nome di servizio alla volta. Tuttavia, è possibile inviare tramite pipe più servizi a Set-Service
per modificare la configurazione di più servizi.
Get-Service SQLWriter,spooler |
Set-Service -StartupType Automatic -PassThru |
Select-Object Name, StartType
Name StartType
---- ---------
spooler Automatic
SQLWriter Automatic
Parametri
-Confirm
Richiede conferma prima di eseguire Set-Service
.
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 altre informazioni sulla protezione dei dati di SecureString, vedere Quanto è sicuro SecureString?.
Questo parametro è stato introdotto in PowerShell 6.0.
Tipo: | PSCredential |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Description
Specifica una nuova descrizione per il servizio.
La descrizione del servizio viene visualizzata in Gestione computer/Servizi. Il Description non è una proprietà dell'oggettoServiceController Get-Service
. Per visualizzare la descrizione del servizio, utilizzare Get-CimInstance
che restituisce un oggetto Win32_Service che rappresenta il servizio.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-DisplayName
Specifica un nuovo nome visuale per il servizio.
Nota
In genere, Set-Service
funziona solo sui servizi Windows e non sui driver. Tuttavia, se si specifica il nome di un driver, Set-Service
può prendere di mira il driver.
Tipo: | String |
Alias: | DN |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Force
Specifica la modalità di arresto del servizio. Questo parametro funziona solo quando viene usato -Status Stopped
. Se abilitato, Set-Service
arresta i servizi dipendenti prima che il servizio obiettivo venga arrestato. Per impostazione predefinita, le eccezioni vengono generate quando altri servizi in esecuzione dipendono dal servizio di destinazione.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-InputObject
Specifica un oggetto ServiceController che rappresenta il servizio da modificare. Immettere una variabile contenente l'oggetto oppure digitare un comando o un'espressione che ottiene l'oggetto, ad esempio un comando Get-Service
. È possibile usare la pipeline per inviare un oggetto servizio a Set-Service
.
Tipo: | ServiceController |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Name
Specifica il nome del servizio da modificare. I caratteri jolly non sono consentiti. È possibile usare la pipeline per inviare un nome di servizio a Set-Service
.
Nota
In genere, Set-Service
funziona solo sui servizi Windows e non sui driver. Tuttavia, se si specifica il nome di un driver, Set-Service
può prendere di mira il driver.
Tipo: | String |
Alias: | ServiceName, SN |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-PassThru
Restituisce un oggetto ServiceController che rappresenta i servizi modificati. Per impostazione predefinita, Set-Service
non genera alcun output.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-SecurityDescriptorSddl
Specifica il SecurityDescriptor per il servizio in formato SDDL. L'account che chiama Set-Service
con questo parametro deve avere le autorizzazioni WRITE_DAC e WRITE_OWNER. Per altre informazioni, vedere Sicurezza e diritti di accesso del servizio.
Tipo: | String |
Alias: | sd |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-StartupType
Specifica la modalità di avvio del servizio.
I valori accettabili per questo parametro sono i seguenti:
- 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.
- ValoreNonValido - non ha alcun effetto. Il cmdlet non restituisce un errore, ma startupType del servizio non viene modificato.
- manuale: il servizio viene avviato solo manualmente, da un utente, tramite Service Control Manager o da un'applicazione.
Tipo: | ServiceStartupType |
Alias: | StartMode, SM, ST, StartType |
Valori accettati: | Automatic, AutomaticDelayedStart, Disabled, InvalidValue, Manual |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Status
Specifica lo stato del servizio.
I valori accettabili per questo parametro sono i seguenti:
- Sospeso. Sospende il servizio.
- Esecuzione di. Avvia il servizio.
- Arrestato. Arresta il servizio.
Tipo: | String |
Valori accettati: | Paused, Running, Stopped |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-WhatIf
Mostra cosa accadrebbe se Set-Service
venisse eseguito. 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
È possibile inviare tramite pipe un oggetto servizio a questo cmdlet.
È possibile inviare tramite pipe una stringa contenente un nome di servizio a questo cmdlet.
Output
None
Per impostazione predefinita, questo cmdlet non restituisce alcun output.
Quando si usa il parametro PassThru, questo cmdlet restituisce un oggetto ServiceController.
Note
Questo cmdlet è disponibile solo nelle piattaforme Windows.
Set-Service
richiede autorizzazioni elevate. Usare l'opzione Esegui come amministratore.
Set-Service
può controllare solo i servizi quando l'utente corrente dispone delle autorizzazioni per gestire i servizi. Se un comando non funziona correttamente, è possibile che non si disponga delle autorizzazioni necessarie.
Per trovare il nome del servizio o il nome visualizzato di un servizio, usare Get-Service
. I nomi dei servizi si trovano nella colonna nome e i nomi visualizzati si trovano nella colonna DisplayName.