Restart-Computer
Riavvia il sistema operativo nei computer locali e remoti.
Sintassi
Restart-Computer
[[-ComputerName] <string[]>]
[[-Credential] <pscredential>]
[-DcomAuthentication <AuthenticationLevel>]
[-Impersonation <ImpersonationLevel>]
[-WsmanAuthentication <string>]
[-Protocol <string>]
[-Force]
[-Wait]
[-Timeout <int>]
[-For <WaitForServiceTypes>]
[-Delay <int16>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Restart-Computer
[[-ComputerName] <string[]>]
[[-Credential] <pscredential>]
[-AsJob]
[-DcomAuthentication <AuthenticationLevel>]
[-Impersonation <ImpersonationLevel>]
[-Force]
[-ThrottleLimit <int>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Descrizione
Il Restart-Computer
cmdlet riavvia il sistema operativo nei computer locali e remoti.
È possibile usare i parametri di per eseguire le operazioni di riavvio come processo in background, per specificare i livelli di Restart-Computer
autenticazione e le credenziali alternative, per 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 in attesa e un intervallo di query e attendere che i servizi specifici siano disponibili nel computer riavviato. Questa funzionalità rende pratica l'uso Restart-Computer
in script e 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 Protocollo WS-Management.
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 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 Restart-Computer
comando 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 processo viene archiviato nella $Job
variabile. $Job
viene inviata la pipeline al Receive-Job
cmdlet 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 Domain01.txt
file. I nomi di 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 di 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 quindi 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
usa 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 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 ha l'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 Protocol 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 mentre il processo viene completato. Il processo viene creato nel computer locale e i risultati del computer remoto vengono automaticamente restituiti al computer locale. Per gestire il processo, utilizzare i cmdlet Job. Per ottenere i risultati del processo, usare il Receive-Job
cmdlet.
Per altre informazioni sui processi in background Windows PowerShell, vedere about_Jobs e about_Remote_Jobs.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-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 eseguire comandi remoti.
Se il parametro ComputerName non è specificato, Restart-Computer
riavvia il computer locale.
Type: | String[] |
Aliases: | CN, __SERVER, Server, IPAddress |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
Richiede la conferma prima dell'esecuzione Restart-Computer
di .
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Specifica un account utente che dispone dell'autorizzazione per eseguire questa azione. Digitare un nome utente, ad esempio User01, Domain01\User01 o immettere un oggetto PSCredential generato dal Get-Credential
cmdlet.
Se il parametro Credential non è specificato, Restart-Computer
usa le credenziali dell'utente corrente.
Type: | PSCredential |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DcomAuthentication
Specifica il livello di autenticazione usato per la connessione WMI. Restart-Computer
usa WMI.
I valori validi sono:
- Chiamata: Autenticazione COM a livello di chiamata
- Connessione: Autenticazione COM a livello di connessione
- Impostazione predefinita: Autenticazione di Windows
- Nessuna: Nessuna autenticazione COM
- Pacchetto: 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.
Type: | AuthenticationLevel |
Aliases: | Authentication |
Accepted values: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 con i parametri Wait e For .
Questo parametro è stato introdotto in Windows PowerShell 3.0.
Se il parametro Delay non è specificato, Restart-Computer
usa un secondo ritardo.
Type: | Int16 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 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.
Type: | WaitForServiceTypes |
Accepted values: | Wmi, WinRM, PowerShell |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Forza un riavvio immediato del computer.
Type: | SwitchParameter |
Aliases: | f |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Impersonation
Specifica il livello di rappresentazione usato da questo cmdlet per chiamare WMI. Restart-Computer
usa WMI.
I valori validi per questo parametro sono:
- Impostazione 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.
- Rappresentazione: consente agli oggetti di usare le credenziali del chiamante.
Type: | ImpersonationLevel |
Accepted values: | Default, Anonymous, Identify, Impersonate, Delegate |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Protocol
Specifica il protocollo da usare per riavviare i computer. I valori validi sono WSMan e DCOM.
Questo parametro è stato introdotto in Windows PowerShell 3.0.
Type: | String |
Accepted values: | DCOM, WSMan |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ThrottleLimit
Specifica il numero massimo di connessioni simultanee che è possibile stabilire per eseguire il comando. Questo valore limite si applica solo al comando corrente, non alla sessione o al computer.
Se il parametro ThrottleLimit non è specificato o viene usato un valore pari a 0, Restart-Computer
usa un massimo di 32 connessioni simultanee.
Type: | Int |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Timeout
Specifica la durata dell'attesa, in secondi. Al termine del timeout, restituisce al prompt dei comandi, Restart-Computer
anche se i computer non vengono riavviati.
Il parametro Timeout è valido solo con il parametro Wait . Timeout esegue l'override del periodo di attesa indefinito del parametro Wait .
Questo parametro è stato introdotto in Windows PowerShell 3.0.
Type: | Int |
Aliases: | TimeoutSec |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 in modo indefinito il riavvio dei computer. È possibile usare Timeout per modificare la tempistica e i parametri For e Delay per attendere che i servizi specifici 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, genera un errore non terminante per Wait nel computer locale, Restart-Computer
ma attende il riavvio dei computer remoti.
Questo parametro è stato introdotto in Windows PowerShell 3.0.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Mostra cosa succederebbe se l'esecuzione.Restart-Computer
Il Restart-Computer
cmdlet non viene eseguito.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WsmanAuthentication
Specifica il meccanismo usato 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 del provider di servizi di sicurezza delle credenziali (CredSSP), in cui le credenziali utente vengono passate a un computer remoto da autenticare, è progettato per i comandi che richiedono l'autenticazione su più risorse, 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.
Type: | String |
Accepted values: | Basic, CredSSP, Default, Digest, Kerberos, Negotiate |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
Restart-Computer
accetta nomi di computer dalla pipeline o dalle variabili.
In Windows PowerShell 2.0 il parametro ComputerName accetta input dalla pipeline solo per nome di proprietà. In Windows PowerShell 3.0 e versioni successive il parametro ComputerName accetta l'input dalla pipeline in base al valore.
Output
None, System.Management.Automation.RemotingJob
Se si specifica il parametro AsJob , Restart-Computer
restituisce un oggetto processo. In caso contrario, non viene generato alcun output.
Note
Restart-Computer
funziona solo nei computer che eseguono Windows e richiede WinRM e WMI per arrestare un sistema, incluso il sistema locale.Restart-Computer
usa il metodo Win32Shutdown della classe Strumentazione gestione Windows (WMI) Win32_OperatingSystem .
In Windows PowerShell 2.0 il parametro AsJob non funziona in modo affidabile quando si riavvia o si arrestano i computer remoti. In Windows PowerShell 3.0 l'implementazione è stata modificata per risolvere il problema.