Restart-Computer
Riavvia il sistema operativo nei computer locali e remoti.
Sintassi
DefaultSet (Impostazione predefinita)
Restart-Computer
[[-ComputerName] <String[]>]
[[-Credential] <PSCredential>]
[-DcomAuthentication <AuthenticationLevel>]
[-Impersonation <ImpersonationLevel>]
[-WsmanAuthentication <String>]
[-Protocol <String>]
[-Force]
[-Wait]
[-Timeout <Int32>]
[-For <WaitForServiceTypes>]
[-Delay <Int16>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
AsJobSet
Restart-Computer
[[-ComputerName] <String[]>]
[[-Credential] <PSCredential>]
[-AsJob]
[-DcomAuthentication <AuthenticationLevel>]
[-Impersonation <ImpersonationLevel>]
[-Force]
[-ThrottleLimit <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Descrizione
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 come processo in background, 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.
È possibile usare il protocollo WS-Management (WSMan) per riavviare il computer, nel caso in cui le chiamate DCOM (Distributed Component Object Model) siano bloccate, ad esempio da un firewall aziendale. Per altre informazioni, vedere WS-Management Protocol.
Questo cmdlet richiede la comunicazione remota di Windows PowerShell solo quando si usa il parametro AsJob in un comando.
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: Riavviare i computer come processo in background
Questi comandi eseguono un comando Restart-Computer come processo in background in due computer remoti e quindi ottengono i risultati.
Poiché AsJob crea il processo nel computer locale e restituisce automaticamente i risultati al computer locale, è possibile eseguire Receive-Job come comando locale.
$Job = Restart-Computer -ComputerName "Server01", "Server02" -AsJob
$Job | Receive-Job
Restart-Computer usa il parametro ComputerName per specificare Server01 e Server02. Il parametro asjob esegue il comando come processo in background. L'oggetto lavoro viene memorizzato nella variabile $Job.
$Job viene inviata alla pipeline al cmdlet Receive-Job che ottiene i risultati.
Esempio 4: Riavviare un computer remoto
Restart-Computer riavvia un computer remoto con impostazioni di rappresentazione e autenticazione personalizzate.
Restart-Computer -ComputerName Server01 -Impersonation Anonymous -DcomAuthentication PacketIntegrity
Restart-Computer usa il parametro ComputerName per specificare Server01. Il parametro rappresentazione specifica Anonymous per nascondere l'identità del richiedente. Il parametro DcomAuthentication specifica PacketIntegrity come livello di autenticazione della connessione.
Esempio 5: 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 e il parametro ThrottleLimit limita il numero di connessioni simultanee.
$Names = Get-Content -Path C:\Domain01.txt
$Creds = Get-Credential
Restart-Computer -ComputerName $Names -Credential $Creds -Force -ThrottleLimit 10
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. Il parametro ThrottleLimit limita il comando a 10 connessioni simultanee.
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 il protocollo WSMan
Restart-Computer riavvia il computer remoto usando il protocollo WSMan anziché quello predefinito, DCOM. L'autenticazione Kerberos determina se l'utente corrente dispone dell'autorizzazione per riavviare il computer remoto.
Queste impostazioni sono progettate per le aziende in cui i riavvii basati su DCOM hanno esito negativo perché DCOM è bloccato. Ad esempio, da un firewall.
Restart-Computer -ComputerName Server01 -Protocol WSMan -WsmanAuthentication Kerberos
Restart-Computer usa il parametro ComputerName per specificare il computer remoto Server01.
Il parametro protocollo specifica l'uso del protocollo WSMan. Il parametro WsmanAuthentication specifica il metodo di autenticazione come Kerberos.
Parametri
-AsJob
Indica che Restart-Computer viene eseguito come processo in background.
Per usare questo parametro, i computer locali e remoti devono essere configurati per la comunicazione remota. In Windows Vista e versioni successive del sistema operativo Windows è necessario aprire PowerShell usando l'opzione Esegui come amministratore. Per altre informazioni, vedere about_Remote_Requirements.
Quando si specifica il parametro AsJob , il comando restituisce immediatamente un oggetto che rappresenta il processo in background. È possibile continuare a lavorare nella sessione al termine del processo. Il processo viene creato nel computer locale e i risultati dei computer remoti vengono restituiti automaticamente al computer locale. Per gestire il processo, usare i cmdlet processo. Per ottenere i risultati del processo, usare il Receive-Job cmdlet .
Per altre informazioni sui processi in background di Windows PowerShell, vedere about_Jobs e about_Remote_Jobs.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
AsJobSet
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-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.
Proprietà dei parametri
| Tipo: | String[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | Cina, __SERVER, Servidor, Indirizzo IP |
Set di parametri
(All)
| Posizione: | 0 |
| Obbligatorio: | False |
| Valore dalla pipeline: | True |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-Confirm
Richiede conferma prima di eseguire Restart-Computer.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | cfr |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | 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.
Annotazioni
Per ulteriori informazioni sulla protezione dei dati di SecureString, vedere Quanto è sicuro SecureString?.
Proprietà dei parametri
| Tipo: | PSCredential |
| Valore predefinito: | Current user |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | 1 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-DcomAuthentication
Specifica il livello di autenticazione utilizzato per la connessione WMI. Test-Connection usa WMI.
I valori validi sono:
- Call: Autenticazione COM a livello di chiamata
- Connect: autenticazione COM a livello di connessione
- predefinita : Autenticazione di Windows
- Nessuna: nessuna autenticazione COM
- pacchetti: autenticazione COM a livello di pacchetto.
- packetIntegrity: autenticazione COM a livello di integrità dei pacchetti
- PacketPrivacy: autenticazione COM a livello di privacy dei pacchetti.
- invariato: il livello di autenticazione è uguale al comando precedente.
Per altre informazioni, vedere 'enumerazione AuthenticationLevel.
Questo parametro è stato introdotto in Windows PowerShell 3.0.
Proprietà dei parametri
| Tipo: | AuthenticationLevel |
| Valore predefinito: | None |
| Valori accettati: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | Autenticazione |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | 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.
Proprietà dei parametri
| Tipo: | Int16 |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
DefaultSet
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | 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.
Proprietà dei parametri
| Tipo: | WaitForServiceTypes |
| Valore predefinito: | None |
| Valori accettati: | Wmi, WinRM, PowerShell |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
DefaultSet
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Force
Forza un riavvio immediato del computer.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | f |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Impersonation
Specifica il livello di rappresentazione usato da questo cmdlet per chiamare WMI. Test-Connection usa WMI.
I valori accettabili per questo parametro sono:
- predefinita: rappresentazione predefinita. Nonostante il nome, questo non è il valore predefinito.
- anonimo: nasconde l'identità del chiamante.
- Identificare: consente agli oggetti di eseguire query sulle credenziali del chiamante.
- Rappresenta: consente agli oggetti di usare le credenziali del chiamante.
Proprietà dei parametri
| Tipo: | ImpersonationLevel |
| Valore predefinito: | None |
| Valori accettati: | Default, Anonymous, Identify, Impersonate, Delegate |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Protocol
Specifica il protocollo da utilizzare per riavviare i computer. I valori validi sono WSMan e DCOM.
Questo parametro è stato introdotto in Windows PowerShell 3.0.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Valori accettati: | DCOM, WSMan |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
DefaultSet
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-ThrottleLimit
Specifica il numero massimo di connessioni simultanee che è possibile stabilire per eseguire questo comando. Il limite di limitazione si applica solo al comando corrente, non alla sessione o al computer.
Se il parametro ThrottleLimit non viene specificato o viene usato il valore 0, Restart-Computer usa un massimo di 32 connessioni simultanee.
Proprietà dei parametri
| Tipo: | Int32 |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
AsJobSet
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | 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.
Proprietà dei parametri
| Tipo: | Int32 |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | TimeoutSec |
Set di parametri
DefaultSet
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | 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.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
DefaultSet
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-WhatIf
Mostra cosa accadrebbe se il Restart-Computer venisse eseguito. Il cmdlet Restart-Computer non viene eseguito.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | Wi |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | 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.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Valori accettati: | Basic, CredSSP, Default, Digest, Kerberos, Negotiate |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
DefaultSet
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
CommonParameters
Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.
Input
String
È possibile inviare tramite pipe una stringa contenente un nome computer a questo cmdlet.
Output
None
Per impostazione predefinita, questo cmdlet non restituisce alcun output.
System.Management.Automation.RemotingJob
Quando si usa il parametro AsJob, questo cmdlet restituisce un oggetto processo.
Note
-
Restart-Computerfunziona solo nei computer che eseguono Windows e richiede WinRM e WMI per arrestare un sistema, incluso il sistema locale. -
Restart-Computerusa 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 Windows PowerShell 2.0 il parametro AsJob non funziona in modo affidabile quando si riavviano o si arrestano i computer remoti. In Windows PowerShell 3.0 l'implementazione viene modificata per risolvere il problema.