Condividi tramite


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 cmdlet Start-Service 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 Nome 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 sì 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 si usa Get-Service per ottenere un oggetto che rappresenta il servizio WMI e archiviarlo nella variabile $s. Avviare quindi il servizio. Senza il parametro PassThru, Start-Service non crea alcun output. L'operatore pipeline (|) passa l'output dell'oggetto da Start-Service al cmdlet Format-List per formattare l'oggetto come elenco delle relative proprietà. L'operatore di reindirizzamento append (>>) 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 è Disabled.

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 comando Get-CimInstance mostra che la proprietà StartMode del servizio Tlntsvr è Disabled. Il cmdlet Set-Service modifica il tipo di avvio in Manuale. È ora possibile inviare di nuovo il comando Start-Service. Questa volta, il comando ha esito positivo. Per verificare che il comando sia riuscito, eseguire Get-Service.

Parametri

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Tipo:SwitchParameter
Alias:cf
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-DisplayName

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

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:True

-Exclude

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

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:True

-Include

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

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:True

-InputObject

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

Tipo:ServiceController[]
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Name

Specifica i nomi dei servizi per il servizio da avviare.

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

Tipo:String[]
Alias:ServiceName
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-PassThru

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

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-WhatIf

Mostra cosa accadrebbe se il cmdlet 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

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 utilizza il parametro PassThru, questo cmdlet restituisce un oggetto ServiceController che rappresenta il servizio.

Note

PowerShell include gli alias seguenti per Start-Service:

  • Finestre:
    • sasv

Questo cmdlet è disponibile solo nelle piattaforme Windows.

  • Per impostazione predefinita, solo i membri del gruppo Administrators possono avviare, arrestare, sospendere, riprendere o riavviare un servizio. Se si è membri del gruppo Administrators, è necessario eseguire Start-Service da una sessione di PowerShell con privilegi elevati. Usare l'opzione Esegui come amministratore per avviare PowerShell.
  • 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 comando Start-Service 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 cmdlet Set-Service 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.