Compartilhar via


Stop-Computer

Para (desliga) computadores locais e remotos.

Sintaxe

Stop-Computer
    [-AsJob]
    [-DcomAuthentication <AuthenticationLevel>]
    [-WsmanAuthentication <String>]
    [-Protocol <String>]
    [[-ComputerName] <String[]>]
    [[-Credential] <PSCredential>]
    [-Impersonation <ImpersonationLevel>]
    [-ThrottleLimit <Int32>]
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

O cmdlet stop-computer desliga os computadores remotamente. Ele também pode desligar o computador local.

Você pode usar os parâmetros de stop-computer para executar as operações de desligamento como um trabalho em segundo plano, especificar os níveis de autenticação e credenciais alternativas, limitar as conexões simultâneas criadas para executar o comando e forçar um desligamento imediato.

Esse cmdlet não requer comunicação remota do Windows PowerShell, a menos que você use o parâmetro AsJob.

Exemplos

Exemplo 1: desligar o computador local

PS C:\> Stop-Computer

Esse comando desliga o computador local.

Exemplo 2: desligar dois computadores remotos e o computador local

PS C:\> Stop-Computer -ComputerName "Server01", "Server02", "localhost"

Esse comando interrompe dois computadores remotos, Server01 e Server02 e o computador local, identificados como localhost.

Exemplo 3: Desligar computadores remotos como um trabalho em segundo plano

PS C:\> $j = Stop-Computer -ComputerName "Server01", "Server02" -AsJob
PS C:\> $results = $j | Receive-Job
PS C:\> $results

Esses comandos são executados stop-computer como um trabalho em segundo plano em dois computadores remotos e, em seguida, obtêm os resultados.

O primeiro comando especifica o parâmetro AsJob para executar o comando como um trabalho em segundo plano. O comando salva o objeto de trabalho resultante na variável $j.

O segundo comando usa um operador de pipeline para enviar o objeto de trabalho em $j para receive-job, que obtém os resultados do trabalho. O comando salva os resultados na variável $results.

O terceiro comando exibe o resultado salvo na variável $results.

Como AsJob cria o trabalho no computador local e retorna automaticamente os resultados para o computador local, você pode executar de Trabalho De Recebimento como um comando local.

Exemplo 4: desligar um computador remoto

PS C:\> Stop-Computer -CompupterName "Server01" -Impersonation anonymous -Authentication PacketIntegrity

Esse comando interrompe o computador remoto Server01. O comando usa configurações personalizadas de representação e autenticação.

Exemplo 5:

PS C:\> $s = Get-Content Domain01.txt
PS C:\> $c = Get-Credential domain01\admin01
PS C:\> Stop-Computer -ComputerName $s -Force -ThrottleLimit 10 -Credential $c

Esses comandos forçam um desligamento imediato de todos os computadores no Domain01.

O primeiro comando obtém uma lista de computadores no domínio e os armazena na variável $s.

O segundo comando obtém as credenciais de um administrador de domínio e as armazena na variável $c.

O terceiro comando desliga os computadores. Ele usa parâmetro computername para enviar a lista de computadores na variável $s, o parâmetro Force para forçar um desligamento imediato e o parâmetro Credencial para enviar as credenciais salvas na variável $c. Ele também usa o parâmetro ThrottleLimit para limitar o comando a 10 conexões simultâneas.

Parâmetros

-AsJob

Indica que esse cmdlet é executado como um trabalho em segundo plano.

Para usar esse parâmetro, os computadores locais e remotos devem ser configurados para comunicação remota e, no Windows Vista e versões posteriores do sistema operacional Windows, você deve abrir o Windows 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 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 os computadores a serem interrompidos. O padrão é o computador local.

Digite o nome NETBIOS, o endereço IP ou o nome de domínio totalmente qualificado de um ou mais computadores em uma lista separada por vírgulas. Para especificar o computador local, digite o nome do computador ou localhost.

Esse parâmetro não depende da comunicação remota do Windows PowerShell. Você pode usar o parâmetro ComputerName mesmo se o computador não estiver configurado para executar comandos remotos.

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 a confirmação antes de executar o cmdlet.

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 executar essa ação. O padrão é o usuário atual.

Digite um nome de usuário, como User01 ou Domain01\User01, ou insira um objeto PSCredential , como um do cmdlet Get-Credential.

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 que esse cmdlet usa com o WMI. stop-computer usa WMI. Os valores aceitáveis para este parâmetro são:

  • Inadimplência. Autenticação do Windows
  • Nenhum. Nenhuma autenticação COM
  • Ligar. Autenticação COM no nível de conexão
  • Chamar. Autenticação COM no nível de chamada
  • 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 mesmo que o comando anterior

O valor padrão é Packet.

Para obter mais informações sobre os valores desse parâmetro, consulte de Enumeração AuthenticationLevel na biblioteca MSDN.

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

-Force

Força um desligamento imediato dos computadores.

Tipo:SwitchParameter
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 a ser usado quando esse cmdlet chama WMI. stop-computer usa WMI. Os valores aceitáveis para este parâmetro são:

  • Inadimplência. Representação padrão.
  • Anônimo. Oculta a identidade do chamador.
  • Identificar. Permite que os objetos consultem as credenciais do chamador.
  • Personificar. Permite que os objetos usem as credenciais do chamador.

O valor padrão é Impersonate.

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 aceitáveis para esse parâmetro são: WSMan e DCOM. O valor padrão é DCOM.

Esse parâmetro foi 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. Se você omitir esse parâmetro ou inserir um valor de 0, o valor padrão, 32, será usado.

O limite de limitação se aplica somente ao comando atual, não à sessão ou ao computador.

Tipo:Int32
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 cmdlet fosse executado. O cmdlet 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 quando esse cmdlet usa o protocolo WSMan. Os valores aceitáveis para este parâmetro são:

  • Básico
  • CredSSP
  • Inadimplência
  • Digerir
  • Kerberos
  • Negociar.

O valor padrão é Default.

Para obter mais informações sobre os valores desse parâmetro, consulte de Enumeração AuthenticationMechanism na biblioteca MSDN.

Cuidado: 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.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo:String
Valores aceitos:Default, Basic, Negotiate, CredSSP, Digest, Kerberos
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

None

Não é possível redirecionar a entrada para este cmdlet.

Saídas

None or System.Management.Automation.RemotingJob

O cmdlet retorna um objeto System.Management.Automation.RemotingJob, se você especificar o parâmetro AsJob. Caso contrário, ele não gerará nenhuma saída.

Observações

  • Esse cmdlet usa o método Win32Shutdown da classe WMI Win32_OperatingSystem.
  • No Windows PowerShell 2.0, o parâmetro AsJob não funciona de forma confiável quando você está reiniciando/interrompendo computadores remotos. No Windows PowerShell 3.0, a implementação é alterada para resolver esse problema.