Condividi tramite


Restart-Computer

Riavvia il sistema operativo nei computer locali e remoti.

Sintassi

Restart-Computer
       [-WsmanAuthentication <String>]
       [[-ComputerName] <String[]>]
       [[-Credential]<PSCredential>]
       [-Force]
       [-Wait]
       [-Timeout <Int32>]
       [-For <WaitForServiceTypes>]
       [-Delay <Int16>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Descrizione

Questo cmdlet è disponibile solo nella piattaforma Windows.

Il Restart-Computer cmdlet riavvia il sistema operativo nei computer locali e remoti.

È possibile usare i parametri di per eseguire le operazioni di Restart-Computer riavvio, per specificare i livelli di autenticazione e le credenziali alternative, limitare le operazioni eseguite contemporaneamente e forzare un riavvio immediato.

A partire da Windows PowerShell 3.0, è possibile attendere il completamento del riavvio prima di eseguire il comando successivo. Specificare un timeout di attesa e un intervallo di query e attendere che determinati servizi siano disponibili nel computer riavviato. Questa funzionalità rende pratico l'uso Restart-Computer in script e funzioni.

Esempio

Esempio 1: Riavviare il computer locale

Restart-Computer riavvia il computer locale.

Restart-Computer

Esempio 2: Riavviare più computer

Restart-Computer può riavviare computer remoti e locali. Il parametro ComputerName accetta una matrice di nomi computer.

Restart-Computer -ComputerName Server01, Server02, localhost

Esempio 3: Ottenere nomi di computer da un file di testo

Restart-Computer ottiene un elenco di nomi di computer da un file di testo e riavvia i computer. Il parametro ComputerName non è specificato. Tuttavia, poiché è il primo parametro di posizione, accetta i nomi dei computer dal file di testo che vengono inviati nella pipeline.

Get-Content -Path C:\Domain01.txt | Restart-Computer

Get-Contentusa il parametro Path per ottenere un elenco di nomi di computer da un file di testo Domain01.txt. I nomi dei computer vengono inviati alla pipeline. Restart-Computer riavvia ogni computer.

Esempio 4: Forzare il riavvio dei computer elencati in un file di testo

In questo esempio viene forzato un riavvio immediato dei computer elencati nel Domain01.txt file. I nomi dei computer del file di testo vengono archiviati in una variabile. Il parametro Force forza un riavvio immediato.

$Names = Get-Content -Path C:\Domain01.txt
$Creds = Get-Credential
Restart-Computer -ComputerName $Names -Credential $Creds -Force

Get-Contentusa il parametro Path per ottenere un elenco di nomi di computer da un file di testo Domain01.txt. I nomi dei computer vengono archiviati nella variabile $Names. Get-Credential richiede un nome utente e una password e archivia i valori nella variabile $Creds. Restart-Computer usa i parametri ComputerName e Credential con le relative variabili. Il parametro Force causa un riavvio immediato di ogni computer.

Esempio 6: Riavviare un computer remoto e attendere PowerShell

Restart-Computer riavvia il computer remoto e attende fino a 5 minuti (300 secondi) affinché PowerShell diventi disponibile nel computer riavviato prima che continui.

Restart-Computer -ComputerName Server01 -Wait -For PowerShell -Timeout 300 -Delay 2

Restart-Computer utilizza il parametro ComputerName per specificare Server01. Il parametro Wait attende il completamento del riavvio. For specifica che PowerShell può eseguire comandi nel computer remoto. Il parametro Timeout specifica un'attesa di cinque minuti. Il parametro Delay esegue una query sul computer remoto ogni due secondi per determinare se viene riavviato.

Esempio 7: Riavviare un computer usando WsmanAuthentication

Restart-Computer riavvia il computer remoto usando il meccanismo WsmanAuthentication . L'autenticazione Kerberos determina se l'utente corrente dispone dell'autorizzazione per riavviare il computer remoto. Per altre informazioni, vedere AuthenticationMechanism.

Restart-Computer -ComputerName Server01 -WsmanAuthentication Kerberos

Restart-Computerutilizza il parametro ComputerName per specificare il computer remoto Server01. Il parametro WsmanAuthentication specifica il metodo di autenticazione come Kerberos.

Parametri

-ComputerName

Specifica un nome computer o una matrice delimitata da virgole di nomi computer. Restart-Computer accetta oggetti ComputerName dalla pipeline o dalle variabili.

Digitare il nome NetBIOS, un indirizzo IP o un nome di dominio completo di un computer remoto. Per specificare il computer locale, digitare il nome del computer, un punto .o localhost.

Questo parametro non si basa sulla comunicazione remota di PowerShell. È possibile usare il parametro ComputerName anche se il computer non è configurato per l'esecuzione di comandi remoti.

Se il parametro ComputerName non è specificato, Restart-Computer riavvia il computer locale.

Tipo:String[]
Alias:CN, __SERVER, Server, IPAddress
Posizione:0
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Confirm

Richiede conferma prima di eseguire Restart-Computer.

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

-Credential

Specifica un account utente autorizzato a eseguire questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio User01 o Domain01\User01, oppure immettere un oggetto PSCredential generato dal Get-Credential cmdlet. Se si digita un nome utente, viene richiesto di immettere la 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?.

Tipo:PSCredential
Posizione:1
Valore predefinito:Current user
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Delay

Specifica la frequenza delle query, in secondi. PowerShell esegue una query sul servizio specificato dal parametro For per determinare se il servizio è disponibile dopo il riavvio del computer.

Questo parametro è valido solo insieme ai parametri Wait e For .

Questo parametro è stato introdotto in Windows PowerShell 3.0.

Se il parametro Delay non è specificato, Restart-Computer usa un ritardo di cinque secondi.

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

-For

Specifica il comportamento di PowerShell perché attende che il servizio o la funzionalità specificata diventino disponibili dopo il riavvio del computer. Questo parametro è valido solo con il parametro Wait .

I valori validi per questo parametro sono:

  • Impostazione predefinita: attende il riavvio di PowerShell.
  • PowerShell: può eseguire comandi in una sessione remota di PowerShell nel computer.
  • WMI: riceve una risposta a una query di Win32_ComputerSystem per il computer.
  • WinRM: può stabilire una sessione remota al computer usando WS-Management.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

Tipo:WaitForServiceTypes
Valori accettati:Wmi, WinRM, PowerShell
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Force

Forza un riavvio immediato del computer.

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

-Timeout

Specifica la durata dell'attesa, in secondi. Al termine del timeout, torna al prompt dei comandi, Restart-Computer anche se i computer non vengono riavviati.

Il parametro Timeout è valido solo con il parametro Wait . Il timeout esegue l'override del periodo di attesa indefinito del parametro Wait .

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-Wait

Restart-Computer elimina il prompt di PowerShell e blocca la pipeline fino al riavvio dei computer. È possibile usare questo parametro in uno script per riavviare i computer e quindi continuare a elaborare al termine del riavvio.

Il parametro Wait attende a tempo indeterminato il riavvio dei computer. È possibile usare Timeout per regolare la tempistica e i parametri For e Delay per attendere che determinati servizi diventino disponibili nei computer riavviati.

Il parametro Wait non è valido quando si riavvia il computer locale. Se il valore del parametro ComputerName contiene i nomi dei computer remoti e del computer locale, Restart-Computer genera un errore non irreversibile per Wait sul computer locale, ma attende il riavvio dei computer remoti.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-WhatIf

Mostra cosa accadrebbe se l'esecuzione.Restart-Computer Il Restart-Computer 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

-WsmanAuthentication

Specifica il meccanismo utilizzato per autenticare le credenziali utente. Questo parametro è stato introdotto in Windows PowerShell 3.0.

I valori accettabili per questo parametro sono: Basic, CredSSP, Default, Digest, Kerberos e Negotiate.

Per altre informazioni, vedere AuthenticationMechanism.

Avviso

L'autenticazione CredSSP (Credential Security Service Provider), in cui le credenziali utente vengono passate a un computer remoto da autenticare, è progettato per i comandi che richiedono l'autenticazione su più di una risorsa, ad esempio l'accesso a una condivisione di rete remota. Questo meccanismo aumenta il rischio per la sicurezza dell'operazione remota. Se infatti il computer remoto viene compromesso, le credenziali che gli vengono passate possono essere usate per controllare la sessione di rete.

Tipo:String
Valori accettati:Basic, CredSSP, Default, Digest, Kerberos, Negotiate
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

String

È possibile inviare tramite pipe una stringa contenente un nome computer a questo cmdlet.

Output

None

Questo cmdlet non restituisce output.

Note

  • In Windows Restart-Computer usa il metodo Win32Shutdown della classe wmi (Windows Management Instrumentation) Win32_OperatingSystem . Questo metodo richiede che il privilegio SeShutdownPrivilege sia abilitato per l'account utente usato per riavviare il computer.
  • In Linux e Mac OS Restart-Computer usa lo /sbin/shutdown strumento bash.