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 Set-Service
cmdlet modifica le proprietà di un servizio, ad esempio Status, Description, DisplayName e StartupType. Set-Service
può avviare, arrestare, sospendere o sospendere 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
utilizza 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 verso il basso 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 Get-CimInstance
cmdlet viene usato 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 alla pipeline e Format-List
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 consente di specificare 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
usa il parametro Name per specificare il servizio Pianificazione e invia l'oggetto verso il basso nella 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 in 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 $Cred
variabile. Get-Service
utilizza il parametro Name per specificare il servizio Pianificazione . L'oggetto viene archiviato nella variabile . $S
Invoke-Command
utilizza il parametro ComputerName per specificare un computer remoto. Il parametro Credential usa la $Cred
variabile per accedere al computer. 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 $credential
variabile. Set-Service
utilizza il parametro Name per specificare il servizio Pianificazione . Il parametro Credential usa la $credential
variabile e aggiorna il servizio Pianificazione .
Esempio 9: Modificare securityDescriptor di un servizio
In questo esempio viene modificato securityDescriptor di un servizio.
$SDDL = "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;SU)"
Set-Service -Name "BITS" -SecurityDescriptorSddl $SDDL
SecurityDescriptor viene archiviato nella $SDDL
variabile . Set-Service
usa il parametro Name per specificare il servizio BITS . Il parametro SecurityDescriptorSddl usa $SDDL
per modificare securityDescriptor per il servizio BITS.
Esempio 10: Impostare il tipo di avvio per più servizi
Il Set-Service
cmdlet accetta un solo nome di servizio alla volta. Tuttavia, è possibile inviare tramite pipe più servizi per Set-Service
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 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?.
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. Description non è una proprietà dell'oggetto Get-Service
ServiceController. 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 visualizzato 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
è possibile specificare come destinazione 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à arresta del servizio. Questo parametro funziona solo quando -Status Stopped
viene usato. Se abilitata, Set-Service
arresta i servizi dipendenti prima che il servizio di destinazione 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 Get-Service
comando. È 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
è possibile specificare come destinazione 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 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 del servizio e diritti di accesso.
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 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.
- 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 : 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 Gestione controllo servizi 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.
- In esecuzione. 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
viene 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 i servizi solo 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 Name e i nomi visualizzati si trovano nella colonna DisplayName .