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.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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-ServiceServiceController. Per visualizzare la descrizione del servizio, utilizzare Get-CimInstance che restituisce un oggetto Win32_Service che rappresenta il servizio.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Aliases:DN
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:ServiceController
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:String
Aliases:ServiceName, SN
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PassThru

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Aliases:sd
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.
Type:ServiceStartupType
Aliases:StartMode, SM, ST, StartType
Accepted values:Automatic, AutomaticDelayedStart, Disabled, InvalidValue, Manual
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.
Type:String
Accepted values:Paused, Running, Stopped
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

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

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

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