Compartilhar via


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 em um comando.

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 especifica usar o protocolo WSMan. O parâmetro WsmanAuthentication especifica o método de autenticação como Kerberos.

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 . Para obter os resultados do trabalho, use o cmdlet 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 credencial não for especificado, usará as credenciais do usuário atual.

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 Timeout só é válido com o parâmetro de espera . tempo limite substitui o período de espera indefinido do parâmetro Wait.

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

String

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.