Condividi tramite


Set-Service

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

Sintassi

Name (impostazione predefinita).

Set-Service
    [-Name] <String>
    [-DisplayName <String>]
    [-Credential <PSCredential>]
    [-Description <String>]
    [-StartupType <ServiceStartupType>]
    [-Status <String>]
    [-SecurityDescriptorSddl <String>]
    [-Force]
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

InputObject

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.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False
Alias:cfr

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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.

Annotazioni

Per ulteriori informazioni sulla protezione dei dati di SecureString, vedere Quanto è sicuro SecureString?.

Questo parametro è stato introdotto in PowerShell 6.0.

Proprietà dei parametri

Tipo:PSCredential
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-DisplayName

Specifica un nuovo nome visuale per il servizio.

Annotazioni

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.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:DN

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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.

Proprietà dei parametri

Tipo:ServiceController
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

InputObject
Posizione:0
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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.

Annotazioni

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.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:Nome del servizio, SN

Set di parametri

Name
Posizione:0
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-PassThru

Restituisce un oggetto ServiceController che rappresenta i servizi modificati. Per impostazione predefinita, Set-Service non genera alcun output.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:Sd

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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.

Proprietà dei parametri

Tipo:ServiceStartupType
Valore predefinito:None
Valori accettati:Automatic, AutomaticDelayedStart, Disabled, InvalidValue, Manual
Supporta i caratteri jolly:False
DontShow:False
Alias:StartMode, SM, ST, StartType

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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.
  • Fermato. Arresta il servizio.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Valori accettati:Paused, Running, Stopped
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-WhatIf

Mostra cosa accadrebbe se Set-Service venisse eseguito. Il cmdlet non viene eseguito.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:False
Supporta i caratteri jolly:False
DontShow:False
Alias:Wi

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

Input

ServiceController

È possibile inviare tramite pipe un oggetto servizio a questo cmdlet.

String

È 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.

ServiceController

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.