Restart-Computer
Reinicia o sistema operacional em computadores locais e remotos.
Sintaxe
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>]
Description
O cmdlet Restart-Computer
reinicia o sistema operacional nos computadores locais e remotos.
Você pode usar os parâmetros de Restart-Computer
para executar as operações de reinicialização como um trabalho em segundo plano, especificar os níveis de autenticação e credenciais alternativas, limitar as operações executadas ao mesmo tempo e forçar uma reinicialização imediata.
A partir do Windows PowerShell 3.0, você pode aguardar a conclusão da reinicialização antes de executar o próximo comando. Especifique um tempo limite de espera e um intervalo de consulta e aguarde que determinados serviços estejam disponíveis no computador reiniciado. Esse recurso torna prático usar Restart-Computer
em scripts e funções.
Você pode usar o protocolo WS-Management (WSMan) para reiniciar o computador, caso as chamadas de DCOM (Modelo de Objeto de Componente Distribuído) sejam bloqueadas, como por um firewall da empresa. Para obter mais informações, consulte WS-Management Protocol.
Esse cmdlet requer comunicação remota do Windows PowerShell somente quando você usa o parâmetro asJob
Exemplos
Exemplo 1: reiniciar o computador local
Restart-Computer
reinicia o computador local.
Restart-Computer
Exemplo 2: reiniciar vários computadores
Restart-Computer
pode reiniciar computadores remotos e locais. O parâmetro ComputerName aceita uma matriz de nomes de computador.
Restart-Computer -ComputerName Server01, Server02, localhost
Exemplo 3: reiniciar computadores como um trabalho em segundo plano
Esses comandos executam um comando Restart-Computer
como um trabalho em segundo plano em dois computadores remotos e, em seguida, obtêm os resultados.
Como AsJob cria o trabalho no computador local e retorna automaticamente os resultados para o computador local, você pode executar Receive-Job
como um comando local.
$Job = Restart-Computer -ComputerName "Server01", "Server02" -AsJob
$Job | Receive-Job
Restart-Computer
usa o parâmetro ComputerName para especificar Server01 e Server02. O parâmetro AsJob executa o comando como um trabalho em segundo plano. O objeto de trabalho é armazenado na variável $Job
.
$Job
é enviado pelo pipeline para o cmdlet Receive-Job
que obtém os resultados.
Exemplo 4: reiniciar um computador remoto
Restart-Computer
reinicia um computador remoto com configurações personalizadas de representação e autenticação.
Restart-Computer -ComputerName Server01 -Impersonation Anonymous -DcomAuthentication PacketIntegrity
Restart-Computer
usa o parâmetro ComputerName para especificar Server01. O parâmetro Impersonation especifica Anônimo para ocultar a identidade do solicitante. O parâmetro DcomAuthentication especifica PacketIntegrity como o nível de autenticação da conexão.
Exemplo 5: forçar a reinicialização de computadores listados em um arquivo de texto
Este exemplo força uma reinicialização imediata dos computadores listados no arquivo Domain01.txt
. Os nomes de computador do arquivo de texto são armazenados em uma variável. O parâmetro Force força uma reinicialização imediata e o parâmetro ThrottleLimit limita o número de conexões simultâneas.
$Names = Get-Content -Path C:\Domain01.txt
$Creds = Get-Credential
Restart-Computer -ComputerName $Names -Credential $Creds -Force -ThrottleLimit 10
Get-Content
usa o parâmetro Path para obter uma lista de nomes de computador de um arquivo de texto, Domain01.txt. Os nomes de computador são armazenados na variável $Names
.
Get-Credential
solicita um nome de usuário e senha e armazena os valores na variável $Creds
.
Restart-Computer
usa os parâmetros ComputerName e Credential com suas variáveis. O parâmetro Force causa uma reinicialização imediata de cada computador. O parâmetro ThrottleLimit limita o comando a 10 conexões simultâneas.
Exemplo 6: reiniciar um computador remoto e aguardar o PowerShell
Restart-Computer
reinicia o computador remoto e aguarda até 5 minutos (300 segundos) para que o PowerShell fique disponível no computador reiniciado antes de continuar.
Restart-Computer -ComputerName Server01 -Wait -For PowerShell -Timeout 300 -Delay 2
Restart-Computer
usa o parâmetro ComputerName para especificar Server01. O parâmetro Wait aguarda a conclusão da reinicialização. O For especifica que o PowerShell pode executar comandos no computador remoto. O parâmetro Timeout especifica uma espera de cinco minutos. O parâmetro Delay consulta o computador remoto a cada dois segundos para determinar se ele é reiniciado.
Exemplo 7: Reiniciar um computador usando o Protocolo WSMan
Restart-Computer
reinicia o computador remoto usando o protocolo WSMan em vez do DCOM padrão. A autenticação Kerberos determina se o usuário atual tem permissão para reiniciar o computador remoto.
Essas configurações são projetadas para empresas nas quais as reinicializações baseadas em DCOM falham porque o DCOM está bloqueado. Por exemplo, por um firewall.
Restart-Computer -ComputerName Server01 -Protocol WSMan -WsmanAuthentication Kerberos
Restart-Computer
usa o parâmetro ComputerName para especificar o computador remoto, Server01.
O parâmetro protocolo
Parâmetros
-AsJob
Indica que Restart-Computer
é executado como um trabalho em segundo plano.
Para usar esse parâmetro, os computadores locais e remotos devem ser configurados para comunicação remota. No Windows Vista e versões posteriores do sistema operacional Windows, você deve abrir o PowerShell usando a opção Executar como Administrador. Para obter mais informações, consulte about_Remote_Requirements.
Quando você especifica o parâmetro AsJob, o comando retorna imediatamente um objeto que representa o trabalho em segundo plano. Você pode continuar a trabalhar na sessão enquanto o trabalho é concluído. O trabalho é criado no computador local e os resultados de computadores remotos são retornados automaticamente para o computador local. Para gerenciar o trabalho, use os cmdlets do trabalho Receive-Job
.
Para obter mais informações sobre trabalhos em segundo plano do Windows PowerShell, consulte about_Jobs e about_Remote_Jobs.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-ComputerName
Especifica um nome de computador ou uma matriz separada por vírgulas de nomes de computador.
Restart-Computer
aceita objetos ComputerName do pipeline ou das variáveis.
Digite o nome NetBIOS, um endereço IP ou um nome de domínio totalmente qualificado de um computador remoto. Para especificar o computador local, digite o nome do computador, um ponto .
ou localhost.
Esse parâmetro não depende da comunicação remota do PowerShell. Você pode usar o parâmetro ComputerName mesmo se o computador não estiver configurado para executar comandos remotos.
Se o parâmetro ComputerName não for especificado, Restart-Computer
reiniciará o computador local.
Tipo: | String[] |
Aliases: | CN, __SERVER, Server, IPAddress |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-Confirm
Solicita confirmação antes de executar Restart-Computer
.
Tipo: | SwitchParameter |
Aliases: | cf |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Credential
Especifica uma conta de usuário que tem permissão para fazer essa ação. Digite um nome de usuário, como User01, Domain01\User01 ou insira um objeto PSCredential gerado pelo cmdlet Get-Credential
.
Se o parâmetro
Tipo: | PSCredential |
Cargo: | 1 |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-DcomAuthentication
Especifica o nível de autenticação usado para a conexão WMI.
Restart-Computer
usa WMI.
Os valores válidos são:
- Call: autenticação COM no nível de chamada
- Connect: autenticação COM no nível de conexão
- Padrão: Autenticação do Windows
- None: Sem autenticação COM
- pacote: autenticação COM no nível do pacote.
- PacketIntegrity: autenticação COM no nível de integridade do pacote
- PacketPrivacy: autenticação COM no nível de privacidade do pacote.
- Inalterado: o nível de autenticação é o mesmo que o comando anterior.
Para obter mais informações, consulte Enumeração AuthenticationLevel.
Esse parâmetro é introduzido no Windows PowerShell 3.0.
Tipo: | AuthenticationLevel |
Aliases: | Authentication |
Valores aceitos: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Delay
Especifica a frequência de consultas, em segundos. O PowerShell consulta o serviço especificado pelo parâmetro For para determinar se o serviço está disponível após a reinicialização do computador.
Esse parâmetro é válido apenas com os parâmetros Wait e For.
Esse parâmetro foi introduzido no Windows PowerShell 3.0.
Se o parâmetro Atraso não for especificado, Restart-Computer
usará um atraso de cinco segundos.
Tipo: | Int16 |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-For
Especifica o comportamento do PowerShell enquanto aguarda o serviço ou recurso especificado ficar disponível após a reinicialização do computador. Esse parâmetro só é válido com o parâmetro Wait.
Os valores aceitáveis para este parâmetro são:
- Padrão: aguarda a reinicialização do PowerShell.
- do PowerShell: pode executar comandos em uma sessão remota do PowerShell no computador.
- WMI: recebe uma resposta a uma consulta Win32_ComputerSystem para o computador.
- winrm: pode estabelecer uma sessão remota para o computador usando o WS-Management.
Esse parâmetro foi introduzido no Windows PowerShell 3.0.
Tipo: | WaitForServiceTypes |
Valores aceitos: | Wmi, WinRM, PowerShell |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Force
Força uma reinicialização imediata do computador.
Tipo: | SwitchParameter |
Aliases: | f |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Impersonation
Especifica o nível de representação que esse cmdlet usa para chamar o WMI.
Restart-Computer
usa WMI.
Os valores aceitáveis para este parâmetro são:
- padrão: representação padrão. Apesar do nome, esse não é o valor padrão.
- Anônimo: oculta a identidade do chamador.
- Identifique: permite que os objetos consultem as credenciais do chamador.
- Representar: permite que os objetos usem as credenciais do chamador.
Tipo: | ImpersonationLevel |
Valores aceitos: | Default, Anonymous, Identify, Impersonate, Delegate |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Protocol
Especifica qual protocolo usar para reiniciar os computadores. Os valores válidos são WSMan e DCOM.
Esse parâmetro é introduzido no Windows PowerShell 3.0.
Tipo: | String |
Valores aceitos: | DCOM, WSMan |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-ThrottleLimit
Especifica o número máximo de conexões simultâneas que podem ser estabelecidas para executar esse comando. O limite de limitação se aplica somente ao comando atual, não à sessão ou ao computador.
Se o parâmetro ThrottleLimit não for especificado ou um valor de 0 for usado, Restart-Computer
usará no máximo 32 conexões simultâneas.
Tipo: | Int |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Timeout
Especifica a duração da espera, em segundos. Quando o tempo limite é decorrido, Restart-Computer
retorna ao prompt de comando, mesmo que os computadores não sejam reiniciados.
O parâmetro
Esse parâmetro foi introduzido no Windows PowerShell 3.0.
Tipo: | Int |
Aliases: | TimeoutSec |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Wait
Restart-Computer
suprime o prompt do PowerShell e bloqueia o pipeline até que os computadores sejam reiniciados. Você pode usar esse parâmetro em um script para reiniciar computadores e, em seguida, continuar a processar quando a reinicialização for concluída.
O parâmetro Wait aguarda indefinidamente para que os computadores sejam reiniciados. Você pode usar tempo limite para ajustar o tempo e o Para parâmetros e Atraso aguardar que determinados serviços fiquem disponíveis nos computadores reiniciados.
O parâmetro Wait não é válido quando você está reiniciando o computador local. Se o valor do parâmetro ComputerName contiver os nomes dos computadores remotos e do computador local, Restart-Computer
gerará um erro de não terminação para de Espera no computador local, mas aguardará a reinicialização dos computadores remotos.
Esse parâmetro foi introduzido no Windows PowerShell 3.0.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-WhatIf
Mostra o que aconteceria se o Restart-Computer
fosse executado. O cmdlet Restart-Computer
não é executado.
Tipo: | SwitchParameter |
Aliases: | wi |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-WsmanAuthentication
Especifica o mecanismo usado para autenticar as credenciais do usuário. Esse parâmetro foi introduzido no Windows PowerShell 3.0.
Os valores aceitáveis para esse parâmetro são: Basic, CredSSP, Default, Digest, Kerberose Negotiate.
Para obter mais informações, consulte AuthenticationMechanism.
Aviso
A autenticação credSSP (Provedor de Serviços de Segurança de Credencial), na qual as credenciais do usuário são passadas para um computador remoto a ser autenticado, foi projetada para comandos que exigem autenticação em mais de um recurso, como acessar um compartilhamento de rede remoto. Esse mecanismo aumenta o risco de segurança da operação remota. Se o computador remoto estiver comprometido, as credenciais passadas para ele poderão ser usadas para controlar a sessão de rede.
Tipo: | String |
Valores aceitos: | Basic, CredSSP, Default, Digest, Kerberos, Negotiate |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
Entradas
Restart-Computer
aceita nomes de computador do pipeline ou variáveis.
No Windows PowerShell 2.0, o parâmetro ComputerName usa a entrada do pipeline apenas pelo nome da propriedade. No Windows PowerShell 3.0 e posterior, o parâmetro ComputerName recebe a entrada do pipeline por valor.
Saídas
None, System.Management.Automation.RemotingJob
Se você especificar o parâmetro AsJob, Restart-Computer
retornará um objeto de trabalho. Caso contrário, nenhuma saída será gerada.
Observações
-
Restart-Computer
só funcionam em computadores que executam o Windows e exigem que o WinRM e o WMI desliguem um sistema, incluindo o sistema local. -
Restart-Computer
usa o método Win32Shutdown da classe de Win32_OperatingSystem WMI (Instrumentação de Gerenciamento do Windows).
No Windows PowerShell 2.0, o parâmetro AsJob não funciona de forma confiável quando você está reiniciando ou interrompendo computadores remotos. No Windows PowerShell 3.0, a implementação é alterada para resolver esse problema.