Start-Service

Avvia uno o più servizi arrestati.

Sintassi

Start-Service
     [-InputObject] <ServiceController[]>
     [-PassThru]
     [-Include <String[]>]
     [-Exclude <String[]>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Start-Service
     [-Name] <String[]>
     [-PassThru]
     [-Include <String[]>]
     [-Exclude <String[]>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Start-Service
     [-PassThru]
     -DisplayName <String[]>
     [-Include <String[]>]
     [-Exclude <String[]>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]

Descrizione

Questo cmdlet è disponibile solo nella piattaforma Windows.

Il Start-Service cmdlet invia un messaggio di avvio al controller del servizio Windows per ognuno dei servizi specificati. Se un servizio è già in esecuzione, il messaggio viene ignorato senza errori. È possibile specificare i servizi in base ai nomi dei servizi o ai nomi visualizzati oppure utilizzare il parametro InputObject per fornire un oggetto servizio che rappresenta i servizi da avviare.

Esempio

Esempio 1: Avviare un servizio usando il nome

In questo esempio viene avviato il servizio EventLog nel computer locale. Il parametro Name identifica il servizio in base al nome del servizio.

Start-Service -Name "eventlog"

Esempio 2: Visualizzare le informazioni senza avviare un servizio

In questo esempio viene illustrato cosa si verifica se si avviano i servizi con un nome visualizzato che include "remoto".

Start-Service -DisplayName *remote* -WhatIf

Il parametro DisplayName identifica i servizi in base al nome visualizzato anziché al nome del servizio. Il parametro WhatIf fa in modo che il cmdlet visualizzi cosa accadrebbe quando si esegue il comando ma non apporta modifiche.

Esempio 3: Avviare un servizio e registrare l'azione in un file di testo

In questo esempio viene avviato il servizio Strumentazione gestione Windows (WMI) nel computer e viene aggiunto un record dell'azione al file services.txt.

$s = Get-Service wmi
Start-Service -InputObject $s -PassThru | Format-List >> services.txt

Prima di tutto viene usato Get-Service per ottenere un oggetto che rappresenta il servizio WMI e archiviarlo nella $s variabile . Avviare quindi il servizio. Senza il parametro PassThru , Start-Service non crea alcun output. L'operatore pipeline (|) passa l'output dell'oggetto dal Start-ServiceFormat-List cmdlet per formattare l'oggetto come elenco delle relative proprietà. L'operatore di reindirizzamento di accodamento (>>) reindirizza l'output al file services.txt. L'output viene aggiunto alla fine del file esistente.

Esempio 4: Avviare un servizio disabilitato

In questo esempio viene illustrato come avviare un servizio quando il tipo di avvio del servizio è Disabilitato.

PS> Start-Service tlntsvr
Start-Service : Service 'Telnet (TlntSvr)' cannot be started due to the following error: Cannot start service TlntSvr on computer '.'.
At line:1 char:14
+ Start-Service  <<<< tlntsvr

PS> Get-CimInstance win32_service | Where-Object Name -eq "tlntsvr"
ExitCode  : 0
Name      : TlntSvr
ProcessId : 0
StartMode : Disabled
State     : Stopped
Status    : OK

PS> Set-Service tlntsvr -StartupType manual
PS> Start-Service tlntsvr

Il primo tentativo di avviare il servizio Telnet (tlntsvr) ha esito negativo. Il Get-CimInstance comando mostra che la proprietà StartMode del servizio Tlntsvr è Disabled. Il Set-Service cmdlet modifica il tipo di avvio in Manuale. A questo momento, è possibile inviare nuovamente il Start-Service comando. Questa volta il comando riesce. Per verificare che il comando abbia avuto esito positivo, eseguire Get-Service.

Parametri

-Confirm

Richiede conferma prima di eseguire il cmdlet.

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

-DisplayName

Specifica i nomi visualizzati dei servizi da avviare. I caratteri jolly sono consentiti.

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:True

-Exclude

Specifica i servizi che questo cmdlet omette. Il valore di questo parametro qualifica il parametro Name . Immettere un elemento o un criterio name, ad esempio s*. I caratteri jolly sono consentiti.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Include

Specifica i servizi avviati da questo cmdlet. Il valore di questo parametro qualifica il parametro Name . Immettere un elemento o un criterio name, ad esempio s*. I caratteri jolly sono consentiti.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-InputObject

Specifica gli oggetti ServiceController che rappresentano i servizi da avviare. Immettere una variabile che contiene gli oggetti oppure digitare un comando o un'espressione che ottiene gli oggetti.

Type:ServiceController[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Specifica i nomi di servizio dei servizi da avviare.

Il nome del parametro è facoltativo. È possibile usare Name o il relativo alias, ServiceName o omettere il nome del parametro.

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

-PassThru

Restituisce un oggetto che rappresenta il servizio. Per impostazione predefinita, il cmdlet non genera alcun output.

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

-WhatIf

Mostra gli effetti dell'esecuzione del cmdlet. 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 il nome del 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 che rappresenta il servizio.

Note

PowerShell include gli alias seguenti per Start-Service:

  • Windows:
    • sasv

Questo cmdlet è disponibile solo nelle piattaforme Windows.

  • Start-Service può controllare i servizi solo se l'utente corrente dispone dell'autorizzazione per eseguire questa operazione. Se un comando non funziona correttamente, l'utente potrebbe non avere le autorizzazioni richieste.
  • 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 Nome e i nomi visualizzati vengono visualizzati nella colonna DisplayName .
  • È possibile avviare solo i servizi con un tipo di avvio manuale, automatico o automatico (avvio ritardato). Non è possibile avviare i servizi con un tipo di avvio Disabilitato. Se un Start-Service comando ha esito negativo con il messaggio Cannot start service \<service-name\> on computer, usare Get-CimInstance per trovare il tipo di avvio del servizio e, se necessario, usare il Set-Service cmdlet per modificare il tipo di avvio del servizio.
  • Alcuni servizi, ad esempio i log delle prestazioni e gli avvisi (SysmonLog) vengono interrotti automaticamente se non hanno alcun lavoro da eseguire. Quando PowerShell avvia un servizio che si arresta quasi immediatamente, viene visualizzato il messaggio seguente: Service \<display-name\> start failed.