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 cmdlet Restart-Computer
riavvia il sistema operativo nei computer locali e remoti.
È possibile usare i parametri di Restart-Computer
per eseguire le operazioni di 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à semplifica l'uso di Restart-Computer
negli script e nelle 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 i 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 posizionale, accetta i nomi dei computer dal file di testo che vengono trasmessi attraverso la pipeline.
Get-Content -Path C:\Domain01.txt | Restart-Computer
Get-Content
usa il parametro Path per ottenere un elenco di nomi di computer da un file di testo Domain01.txt. I nomi dei computer vengono trasmessi nella 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 file di Domain01.txt
. 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-Content
usa 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 di continuare.
Restart-Computer -ComputerName Server01 -Wait -For PowerShell -Timeout 300 -Delay 2
Restart-Computer
usa il parametro ComputerName per specificare Server01. Il parametro Wait attende il completamento del riavvio. Il 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 è stato riavviato.
Esempio 7: Riavviare un computer usando WsmanAuthentication
Restart-Computer
riavvia il computer remoto usando il meccanismo di 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-Computer
usa il parametro ComputerName per specificare il computer remoto Server01.
Il parametro WsmanAuthentication specifica il metodo di autenticazione come Kerberos.
Parametri
-ComputerName
Specifica un nome di computer o un elenco separato da virgole di nomi di computer.
Restart-Computer
accetta computerName oggetti 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 sul remoting di PowerShell. È possibile usare il parametro ComputerName anche se il computer non è configurato per eseguire 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\User01oppure immettere un oggetto PSCredential generato dal cmdlet Get-Credential
. 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 ulteriori informazioni sulla protezione dei dati di SecureString, vedere Quanto è sicuro 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 ritardo 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 accettabili per questo parametro sono:
- 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 tramite 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, espressa in secondi. Quando il timeout è trascorso, Restart-Computer
torna al prompt dei comandi, anche se i computer non vengono riavviati.
Il parametro Timeout è valido solo con il parametro Wait. Timeout sostituisce il 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 indefinito il riavvio dei computer. È possibile usare Timeout per regolare la tempistica e i parametri Attesa e Ritardo 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 nel 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 il Restart-Computer
venisse eseguito. Il cmdlet Restart-Computer
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, Kerberose Negotiate.
Per altre informazioni, vedere AuthenticationMechanism.
Avvertimento
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 di sicurezza dell'operazione remota. Se il computer remoto viene compromesso, è possibile usare le credenziali passate 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
È possibile inviare tramite pipe una stringa contenente un nome computer a questo cmdlet.
Output
None
Questo cmdlet non restituisce alcun output.
Note
- In Windows
Restart-Computer
usa il metodo Win32Shutdown della classe wmi (Windows Management Instrumentation Win32_OperatingSystem). Questo metodo richiede che il SeShutdownPrivilege privilegio sia abilitato per l'account utente usato per riavviare il computer. - In Linux e macOS
Restart-Computer
usa lo strumento bash/sbin/shutdown
.