about_Remote_Troubleshooting

Aplica-se a: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

TÓPICO

about_Remote_Troubleshooting

DESCRIÇÃO BREVE

Descreve como solucionar problemas de operações remotas em Windows PowerShell®.

DESCRIÇÃO LONGA

Esta seção descreve alguns dos problemas que você pode encontrar ao usar os recursos de comunicação remota do Windows PowerShell que se baseiam na tecnologia do WS-Management e sugere soluções para esses problemas.

Antes de usar Windows PowerShell comunicação remota, consulte about_Remote e about_Remote_Requirements para obter orientações sobre configuração e uso básico. Além disso, os tópicos da Ajuda para cada um dos cmdlets remotamente, especialmente as descrições de parâmetro, contêm informações úteis que foram projetadas para ajudá-lo a evitar problemas.

Versões atualizadas neste tópico e outros Windows PowerShell tópicos da Ajuda, podem ser baixados usando o cmdlet Update-Help e podem ser encontradas online na Microsoft TechNet Library em https://technet.microsoft.com/library/hh847850(v=wps.630).aspx.

OBSERVAÇÃO: Para ver ou alterar as configurações do computador local na unidade WSMan:, incluindo alterações nas configurações de sessão, hosts confiáveis, portas, ou ouvintes, comece Windows PowerShell com a opção "Executar como administrador".

PROBLEMAS DE AUTENTICAÇÃO E SOLUÇÃO DE PROBLEMAS DE PERMISSÃO

Esta seção aborda problemas de comunicação remota relacionados ao usuário e permissões do computador e requisitos de comunicação remota.

COMO EXECUTAR COMO ADMINISTRADOR

        ERROR: Access is denied. You need to run this cmdlet from an elevated
        process.

Para iniciar uma sessão remota no computador local, ou para ver ou alterar as configurações do computador local na unidade WSMan:, incluindo alterações nas configurações de sessão, hosts confiáveis, portas, ou ouvintes, comece Windows PowerShell com a opção "Executar como administrador".

Para iniciar o Windows PowerShell com a opção "Executar como administrador":

-- Clique com o botão direito do mouse em um ícone Windows PowerShell (ou Windows PowerShell ISE) e, em seguida, clique em "Executar como administrador.

Para iniciar o Windows PowerShell com a "opção Executar como administrador no Windows 7 e Windows Server 2008 R2.

-- Na barra de tarefas do Windows, clique com o botão direito do mouse no ícone Windows PowerShell e clique em "Executar como administrador".

Observação: No Windows Server 2008 R2, o Windows PowerShell ícone está fixado na barra de tarefas por padrão.

COMO HABILITAR A COMUNICAÇÃO REMOTA

        ERROR:  ACCESS IS DENIED
        - or -
        ERROR: The connection to the remote host was refused. Verify that the
        WS-Management service is running on the remote host and configured to
        listen for requests on the correct port and HTTP URL.

Nenhuma configuração é necessária para permitir que um computador envie comandos remotos. No entanto, para receber comandos remotos, Windows PowerShell remoto deve estar habilitado no computador. A habilitação inclui iniciar o serviço WinRM, definir o tipo de inicialização para o serviço WinRM como automático, criar ouvintes para conexões HTTP e HTTPS e criar configurações de sessão padrão.

Windows PowerShell A comunicação remota está habilitada no Windows Server 2012 e versões mais recentes do Windows Server por padrão. Em todos os outros sistemas, execute o cmdlet Enable-PSRemoting para habilitar a comunicação remota. Você também pode executar o cmdlet Enable-PSRemoting para reabilitar a comunicação remota no Windows Server 2012 e versões mais recentes do Windows Server se a comunicação remota for desativada.

Para configurar um computador para receber comandos remotos, use o cmdlet Enable-PSRemoting. O comando a seguir habilita todas as configurações remotas necessárias, permite as configurações de sessão e reinicia o serviço WinRM para que as alterações entrem em vigor.

        Enable-PSRemoting

Para suprimir todas as solicitações de usuário, digite:

        Enable-PSRemoting -Force

Para obter mais informações, consulte Enable-PSRemoting.

COMO HABILITAR A COMUNICAÇÃO REMOTA EM UMA EMPRESA

        ERROR:  ACCESS IS DENIED
        - or -
        ERROR: The connection to the remote host was refused. Verify that the
        WS-Management service is running on the remote host and configured to
        listen for requests on the correct port and HTTP URL.

Para habilitar um único computador receber remoto Windows PowerShell comandos e aceitar conexões, use o cmdlet Enable-PSRemoting.

Para habilitar a comunicação remota para vários computadores em uma empresa, você pode usar as seguintes opções de escala.

  • -Para configurar ouvintes de comunicação remota, habilite a diretiva de grupo "Permitir configuração automática de ouvintes". Para obter instruções, consulte "Como para habilitar ouvintes por usando a diretiva de grupo" (abaixo).

  • – Para definir o tipo de inicialização do Windows Remote Management (WinRM) como automático em vários computadores, use o cmdlet Set-Service. Para obter instruções, consulte "Como definir a inicialização tipo do serviço WinrM" (abaixo).

  • – Para habilitar a exceção de firewall, use o "Firewall do Windows: Permitir exceções de porta Local"diretiva de grupo. Para obter instruções, consulte "Como criar uma exceção de Firewall usando a diretiva de grupo" (abaixo).

COMO HABILITAR OUVINTES USANDO UMA DIRETIVA DE GRUPO

        ERROR:  ACCESS IS DENIED
        - or -
        ERROR: The connection to the remote host was refused. Verify that the
        WS-Management service is running on the remote host and configured to
        listen for requests on the correct port and HTTP URL.

Para configurar os ouvintes para todos os computadores em um domínio, habilite a diretiva "Permitir configuração automática de ouvintes" no caminho de diretiva de grupo a seguir:

        Computer Configuration\Administrative Templates\Windows Components
          \Windows Remote Management (WinRM)\WinRM service

Ative a política e especifique os filtros IPv4 e IPv6. Caracteres curinga (*) são permitidos.

COMO HABILITAR A COMUNICAÇÃO REMOTA EM REDES PÚBLICAS

        ERROR:  Unable to check the status of the firewall

O cmdlet Enable-PSRemoting retorna este erro quando a rede local é pública e o parâmetro SkipNetworkProfileCheck não é usado no comando.

Nas versões de servidor do Windows, o Enable-PSRemoting terá êxito em todos os tipos de local de rede. Ele cria regras de firewall que permitam acesso remoto a redes privadas e domínio ("Home" e "Work"). Em redes públicas, ele cria regras de firewall que permitem o acesso remoto da mesma sub-rede local.

Em versões cliente do Windows, Enable-PSRemoting terá êxito em redes privadas e domínio. Por padrão, não funciona em redes públicas, mas se você usar o parâmetro SkipNetworkProfileCheck, o Enable-PSRemoting funciona e cria um firewall que permite o tráfego a partir da mesma sub-rede local.

Para remover a restrição de sub-rede local em redes públicas e permitir o acesso remoto em qualquer local, execute o seguinte comando:

        Set-NetFirewallRule –Name "WINRM-HTTP-In-TCP-PUBLIC" –RemoteAddress Any

O cmdlet Set-NetFirewallRule é exportado pelo módulo NetSecurity.

OBSERVAÇÃO: Em Windows PowerShell 2.0 em computadores que executam versões de cliente do Windows, Enable-PSRemoting cria regras de firewall que permitem o acesso remoto em redes privadas, domínio e redes públicas. Em computadores que executam versões de cliente do Windows, Enable-PSRemoting cria regras de firewall que permitam o acesso remoto somente em redes privadas e domínio.

COMO HABILITAR A EXCEÇÃO DE FIREWALL USANDO UMA DIRETIVA DE GRUPO

        ERROR:  ACCESS IS DENIED
        - or -
        ERROR: The connection to the remote host was refused. Verify that the
        WS-Management service is running on the remote host and configured to
        listen for requests on the correct port and HTTP URL.

Para habilitar uma exceção de firewall para todos os computadores em um domínio, habilite o "Firewall do Windows: Permitir exceções de porta local"diretiva no caminho de diretiva de grupo a seguir:

        Computer Configuration\Administrative Templates\Network
          \Network Connections\Windows Firewall\Domain Profile

Essa diretiva permite que os membros do grupo Administradores no computador para usar o Firewall do Windows no painel de controle para criar uma exceção de firewall para o serviço de gerenciamento remoto do Windows.

COMO DEFINIR O TIPO DE INICIALIZAÇÃO DO SERVIÇO WINRM

        ERROR:  ACCESS IS DENIED

Windows PowerShell comunicação remota depende do serviço Windows Remote Management (WinRM). O serviço deve ser executado para dar suporte a comandos remotos.

Nas versões de servidor do Windows, o tipo de inicialização do serviço Windows Remote Management (WinRM) é automático.

No entanto, em versões de cliente do Windows, o serviço WinRM é desabilitado por padrão.

Para definir o tipo de inicialização de um serviço em um computador remoto, use o cmdlet Set-Service.

Para executar o comando em vários computadores, você pode criar um arquivo de texto ou CSV dos nomes de computador.

Por exemplo, os seguintes comandos obtêm uma lista de nomes de computador do arquivo txt e definem o tipo de inicialização do serviço WinRM em todos os computadores como automático.

        C:\PS> $servers = Get-Content servers.txt

        C:\PS> Set-Service WinRM -ComputerName $servers -startuptype Automatic

Para ver os resultados para usar o cmdlet Get-WMIObject com o objeto de Win32_Service. Para obter mais informações, consulte Set-Service.

COMO RECRIAR AS CONFIGURAÇÕES DE SESSÃO PADRÃO

        ERROR:  ACCESS IS DENIED

Para se conectar ao computador local e executar comandos remotamente, o computador local deve incluir configurações de sessão para os comandos remotos.

Quando você usa Enable-PSRemoting, ele cria padrão configurações de sessão no computador local. Os usuários remotos usam essas configurações de sessão sempre que um comando remoto não inclui o parâmetro ConfigurationName.

Se as configurações padrão em um computador não são registradas ou excluídas, use o cmdlet Enable-PSRemoting para recriá-las. Você pode usar esse cmdlet repetidamente. Ele não gera erros se um recurso já está configurado.

Se você alterar as configurações de sessão padrão e deseja restaurar as configurações de sessão padrão original, use o cmdlet Unregister-PSSessionConfiguration para excluir as configurações de sessão alterada e, em seguida, use o cmdlet Enable-PSRemoting para restaurá-los. Enable-PSRemoting não altera as configurações de sessão existente.

Observação: Quando Enable-PSRemoting restaura a configuração da sessão padrão, ele não cria descritores de segurança explícita para as configurações. Em vez disso, as configurações herdam o descritor de segurança de RootSDDL, que é seguro por padrão.

Para ver o descritor de segurança RootSDDL, digite:

        Get-Item wsman:\localhost\Service\RootSDDL

Para alterar o RootSDDL, use o cmdlet Set-Item no WSMan: . Para alterar o descritor de segurança de uma configuração de sessão, use o cmdlet Set-PSSessionConfiguration com os parâmetros SecurityDescriptorSDDL ou ShowSecurityDescriptorUI.

Para obter mais informações sobre os limites da unidade WSMan:, consulte o tópico de ajuda para o provedor de WSMan ("Get-Help wsman").

COMO FORNECER CREDENCIAIS DE ADMINISTRADOR

        ERROR:  ACCESS IS DENIED

Para criar um PSSession ou executar comandos em um computador remoto, por padrão, o usuário atual deve ser um membro do grupo Administradores no computador remoto. Às vezes, são necessárias credenciais mesmo quando o usuário atual está conectado a uma conta que seja membro do grupo Administradores.

Se o usuário atual é membro do grupo Administradores no computador remoto, ou pode fornecer as credenciais de um membro do grupo Administradores, use o parâmetro de credencial de New-PSSession, Enter-PSSession ou cmdlets Invoke-Command para se conectar remotamente.

Por exemplo, o comando a seguir fornece as credenciais de administrador.

        Invoke-Command -ComputerName Server01 -Credential Domain01\Admin01

Para obter mais informações sobre o parâmetro de credencial, consulte New-PSSession, Enter-PSSession ou Invoke-Command.

COMO HABILITAR A COMUNICAÇÃO REMOTA PARA OS USUÁRIOS NÃO ADMINISTRATIVOS

        ERROR:  ACCESS IS DENIED

Para estabelecer um PSSession ou executar um comando em um computador remoto, o usuário deve ter permissão para usar as configurações de sessão no computador remoto.

Por padrão, somente os membros do grupo Administradores em um computador têm permissão para usar as configurações de sessão padrão. Portanto, somente os membros do grupo Administradores podem se conectar ao computador remotamente.

Para permitir que outros usuários se conectem ao computador local, dê ao usuário permissões de execução para as configurações de sessão padrão no computador local.

O comando a seguir abre uma folha de propriedades que permite que você altere o descritor de segurança da configuração de sessão do PowerShell padrão no computador local.

        Set-PSSessionConfiguration Microsoft.PowerShell -ShowSecurityDescriptorUI

Para obter mais informações, consulte about_Session_Configurations.

COMO HABILITAR A COMUNICAÇÃO REMOTA PARA OS ADMINISTRADORES EM OUTROS DOMÍNIOS

        ERROR:  ACCESS IS DENIED

Quando um usuário em outro domínio é um membro do grupo Administradores no computador local, o usuário não pode se conectar ao computador remotamente com privilégios de administrador local. Por padrão, conexões remotas de outros domínios são executadas apenas com tokens de privilégios de usuário padrão.

No entanto, você pode usar a entrada de registro LocalAccountTokenFilterPolicy para alterar o comportamento padrão e permitir que os usuários remotos que são membros do grupo Administradores executem com privilégios de administrador.

Cuidado: A entrada LocalAccountTokenFilterPolicy desabilita as restrições remotas do controle da conta do usuário (UAC) para todos os usuários de todos os computadores afetados. Considere as implicações dessa configuração com cuidado antes de alterar a política.

Para alterar a diretiva, use o comando a seguir para definir o valor da entrada do registro LocalAccountTokenFilterPolicy como 1.

        C:\PS> New-ItemProperty -Name LocalAccountTokenFilterPolicy -Path `
            HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -PropertyType `
            DWord -Value 1

COMO USAR UM ENDEREÇO IP EM UM COMANDO REMOTO

        ERROR:  The WinRM client cannot process the request. If the
        authentication scheme is different from Kerberos, or if the client
        computer is not joined to a domain, then HTTPS transport must be used
        or the destination machine must be added to the TrustedHosts
        configuration setting.

Os parâmetros ComputerName da New-PSSession, Enter-PSSession e cmdlets do Invoke-Command aceitam um endereço IP como um valor válido. No entanto, como a autenticação Kerberos não oferece suporte a endereços IP, a autenticação NTLM é usada por padrão sempre que você especificar um endereço IP.

Ao usar a autenticação NTLM, o procedimento a seguir é necessário para a comunicação remota.

  • 1. Configure o computador para o transporte HTTPS ou adicione os endereços IP dos computadores remotos à lista TrustedHosts no computador local.

    Para obter instruções, consulte "Como adicionar um computador à lista TrustedHosts" abaixo.

  • 2. Use o parâmetro de credencial de todos os comandos remotos.

    Isso é necessário mesmo quando você está enviando as credenciais do usuário atual.

COMO SE CONECTAR REMOTAMENTE DE UM COMPUTADOR BASEADO EM GRUPO DE TRABALHO

        ERROR:  The WinRM client cannot process the request. If the
        authentication scheme is different from Kerberos, or if the client
        computer is not joined to a domain, then HTTPS transport must be used
        or the destination machine must be added to the TrustedHosts
        configuration setting.

Quando o computador local não está em um domínio, o procedimento a seguir é necessário para comunicação remota.

  • 1. Configure o computador para o transporte HTTPS ou adicione os nomes dos computadores remotos à lista TrustedHosts no computador local.

    Para obter instruções, consulte "Como adicionar um computador à lista TrustedHosts" abaixo.

  • 2. Verifique se uma senha é definida no computador com o grupo de trabalho. Se uma senha não for definida ou o valor de senha estiver vazio, você não pode executar comandos remotos.

    Para definir a senha da conta do usuário, use contas de usuário no painel de controle.

  • 3. Use o parâmetro de credencial de todos os comandos remotos.

    Isso é necessário mesmo quando você está enviando as credenciais do usuário atual.

COMO ADICIONAR UM COMPUTADOR À LISTA DE HOSTS CONFIÁVEIS

O item TrustedHosts pode conter uma lista separada por vírgulas de nomes de computador, endereços IP e nomes de domínio totalmente qualificado. Caracteres curinga são permitidos.

Para exibir ou alterar a lista de hosts confiáveis, use o WSMan: . O item TrustedHost está no nó WSMan:\localhost\Client.

Somente os membros do grupo Administradores no computador tem permissão para alterar a lista de hosts confiáveis no computador.

Cuidado: O valor definido para o item TrustedHosts afeta todos os usuários do computador.

Para exibir a lista de hosts confiáveis, use o seguinte comando:

        Get-Item wsman:\localhost\Client\TrustedHosts

Você também pode usar o cmdlet Set-Location (alias = cd) para navegar o WSMan. Por exemplo: "cd WSMan:\localhost\Client; dir".

Para adicionar todos os computadores à lista de hosts confiáveis, use o comando a seguir, que coloca um valor de * (all) no nome do computador

        Set-Item wsman:localhost\client\trustedhosts -Value *

Você também pode usar um caractere curinga (*) para adicionar todos os computadores em um domínio específico à lista de hosts confiáveis. Por exemplo, o comando a seguir adiciona todos os computadores no domínio Fabrikam à lista de hosts confiáveis.

        Set-Item wsman:localhost\client\trustedhosts *.fabrikam.com

Para adicionar os nomes de computadores específicos à lista de hosts confiáveis, use o seguinte formato de comando:

        Set-Item wsman:\localhost\Client\TrustedHosts -Value <ComputerName>[,<ComputerName>]

em que cada valor <ComputerName> deve ter o seguinte formato:

        <Computer>.<Domain>.<Company>.<top-level-domain>

Por exemplo:

        Set-Item wsman:\localhost\Client\TrustedHosts -Value Server01.Domain01.Fabrikam.com

Para adicionar um nome de computador a uma lista existente de hosts confiáveis, primeiro salve o valor atual em uma variável e, em seguida, defina o valor como uma lista separada por vírgulas que inclui os valores atuais e novos.

Por exemplo, para adicionar o computador Server01 a uma lista existente de hosts confiáveis, use o seguinte comando

        $curValue = (Get-Item wsman:\localhost\Client\TrustedHosts).value

        Set-Item wsman:\localhost\Client\TrustedHosts -Value "$curValue, Server01.Domain01.Fabrikam.com"

Para adicionar os endereços IP de computadores específicos à lista de hosts confiáveis, use o seguinte formato de comando:

        Set-Item wsman:\localhost\Client\TrustedHosts -Value <IP Address>

Por exemplo:

        Set-Item wsman:\localhost\Client\TrustedHosts -Value 172.16.0.0

Para adicionar um computador à lista TrustedHosts de um computador remoto, use o cmdlet Connect WSMan para adicionar um nó ao computador remoto para o WSMan: no computador local. Em seguida, use um comando Set-Item para adicionar o computador.

Para obter mais informações sobre o cmdlet WSMan Connect, consulte conectar WSMan.

SOLUCIONANDO PROBLEMAS DE CONFIGURAÇÃO DO COMPUTADOR

Esta seção aborda problemas de comunicação remota relacionados a determinadas configurações de um computador, domínio ou corporativo.

COMO CONFIGURAR SUBTOPICOS DE PORTAS REMOTAS OU ALTERNADAS

        ERROR:  The connection to the specified remote host was refused. Verify
        that the WS-Management service is running on the remote host and 
        configured to listen for requests on the correct port and HTTP URL.

Windows PowerShell A comunicação remota usa a porta 80 para o transporte HTTP por padrão. A porta padrão é usada sempre que o usuário não especificar os parâmetros ConnectionURI ou Port em um comando remoto.

Para alterar a porta padrão que Windows PowerShell usa, utilize o cmdlet Set-Item no WSMan: drive para alterar o valor da porta no nó folha-ouvinte.

Por exemplo, o comando a seguir altera a porta padrão para 8080.

        Set-Item wsman:\localhost\listener\listener*\port -Value 8080

COMO CONFIGURAR A COMUNICAÇÃO REMOTA COM UM SERVIDOR PROXY

        ERROR: The client cannot connect to the destination specified in the
        request. Verify that the service on the destination is running and is
        accepting requests.

Tendo em vista que Windows PowerShell acessa remotamente o protocolo HTTP, ele é afetado pelas configurações do proxy HTTP. Em empresas com servidores proxy, os usuários não podem acessar um Windows PowerShell computador remoto diretamente.

Para resolver esse problema, use as opções de configuração de proxy em seu comando remoto. As configurações a seguir estão disponíveis:

  • -ProxyAccessType

  • -ProxyAuthentication

  • -ProxyCredential

Para definir essas opções para um comando específico, use o procedimento a seguir:

  • 1. Use os parâmetros ProxyAccessType, ProxyAuthentication e ProxyCredential do cmdlet New-PSSessionOption para criar um objeto de opção de sessão com as configurações de proxy para a sua empresa. A opção salvar o objeto é uma variável.

  • 2. Use a variável que contém o objeto de opção como o valor do parâmetro de comando Invoke-Command, Enter-PSSession ou New-PSSession SessionOption.

Por exemplo, o comando a seguir cria um objeto de opção de sessão com opções de sessão de proxy e, em seguida, usa o objeto para criar uma sessão remota.

        C:\PS> $SessionOption = New-PSSessionOption -ProxyAccessType IEConfig `
                -ProxyAuthentication Negotiate -ProxyCredential Domain01\User01

        C:\PS> New-PSSession -ConnectionURI https://www.fabrikam.com

Para obter mais informações sobre o cmdlet New-PSSessionOption, consulte o corpo da seção PSSessionOption.Insert aqui.

Para definir essas opções para todos os comandos remotos na sessão atual, use o objeto de opção New-PSSessionOption cria o valor da variável de preferência $PSSessionOption. Para obter mais informações sobre a variável de preferência $PSSessionOption, consulte about_Preference_Variables.

Para definir essas opções para todos os comandos remotos todos os Windows PowerShell sessões no computador local, adicione a variável de preferência $PSSessionOption o Windows PowerShell perfil. Para obter mais informações sobre perfis do Windows PowerShell, consulte about_Profiles.

COMO DETECTAR UMA SESSÃO DE 32 BITS EM UM COMPUTADOR DE 64 BITS

        ERROR: The term "<tool-Name>" is not recognized as the name of a cmdlet,
        function, script file, or operable program. Check the spelling of the
        name, or if a path was included, verify that the path is correct and try
        again.

Se o computador remoto está executando uma versão de 64 bits do Windows e o comando remoto está usando uma configuração de sessão de 32 bits, como Microsoft. powershell32, o Windows Remote Management (WinRM) carrega um processo WOW64 e o Windows redireciona automaticamente todas as referências para o diretório %Windir%\System32 no diretório %windir%\SysWOW64.

Como resultado, se você tentar usar ferramentas no diretório System32 que não têm equivalentes no diretório SysWow64, como Defrag.exe, as ferramentas não podem ser encontradas no diretório.

Para localizar a arquitetura do processador que está sendo usado na sessão, use o valor da variável de ambiente PROCESSOR_ARCHITECTURE. O comando a seguir localiza a arquitetura do processador da sessão na variável $s.

        C:\PS> $s = New-PSSession -ComputerName Server01 -configurationName CustomShell

        C:\PS> invoke-command -session $s {$env:PROCESSOR_ARCHITECTURE}
        x86

Para obter mais informações sobre configurações de sessão, consulte about_session_configurations.

POLÍTICA DE RESOLUÇÃO DE PROBLEMAS E DIRETIVA DE PREFERÊNCIAS

Esta seção aborda problemas de comunicação remota relacionadas a diretivas e preferências definidas nos computadores locais e remotos.

COMO ALTERAR A EXECUÇÃO DE POLÍTICA PARA IMPORT-PSSESSION E IMPORT-MODULE

        ERROR: Import-Module: File <filename> cannot be loaded because the
        execution of scripts is disabled on this system.

Os cmdlets Import-PSSession e Export-PSSession criam módulos que contém os arquivos de script não assinados e arquivos formatados.

Para importar os módulos que são criados por esses cmdlets, usando Import-PSSession ou Import-Module, a diretiva de execução na sessão atual não pode ser Restricted ou AllSigned. (Para obter mais informações sobre Windows PowerShell as políticas de execução, consulte about_Execution_Policies.

Para importar os módulos sem alterar a diretiva de execução para o computador local que é definida no registro, use o parâmetro de escopo de Set-ExecutionPolicy para definir uma política de execução menos restritiva para um único processo.

Por exemplo, o comando a seguir inicia um processo com a diretiva de execução RemoteSigned. A alteração de política de execução afeta somente o processo atual e não altera a configuração de Registro Windows PowerShell ExecutionPolicy.

        Set-ExecutionPolicy -Scope process -ExecutionPolicy RemoteSigned

Você também pode usar o parâmetro ExecutionPolicy de PowerShell.exe para iniciar uma sessão única com uma política de execução menos restritiva.

        PowerShell.exe -ExecutionPolicy RemoteSigned

Para obter mais informações sobre os cmdlets, consulte Import-PSSession, Export-PSSession, and Import-Module. Para obter mais informações sobre as diretivas de execução, consulte about_Execution_Policies. Para obter mais informações sobre as opções de Ajuda do console de PowerShell.exe, digite "PowerShell.exe-?".

COMO DEFINIR E ALTERAR COTAS

        ERROR: The total data received from the remote client exceeded allowed
        maximum.

Você pode usar cotas para proteger o computador local e o computador remoto de uso excessivo de recursos, acidental ou mal-intencionado.

As cotas seguintes estão disponíveis na configuração básica.

  • -- O provedor WSMan (WSMan:) fornece várias configurações de cotas, como as configurações MaxEnvelopeSizeKB and MaxProviderRequests no nó WSMan:\<ComputerName> e as configurações MaxConcurrentOperations, MaxConcurrentOperationsPerUser, e MaxConnections no nó WSMan:\<ComputerName>\Service.

  • -- Você pode proteger o computador local usando os parâmetros de cmdlet New-PSSessionOption e a variável de preferência $PSSessionOption MaximumReceivedDataSizePerCommand e MaximumReceivedObjectSize.

  • -- Você pode proteger o computador remoto, adicionando restrições para as configurações de sessão, como usando os parâmetros de cmdlet Register-PSSessionConfiguration MaximumReceivedDataSizePerCommandMB e MaximumReceivedObjectSizeMB.

Quando as cotas em conflito com um comando, Windows PowerShell gera um erro.

Para resolver o erro, altere o comando remoto para estar de acordo com a cota. Ou, determine a origem da cota e, em seguida, aumente a cota para permitir que o comando seja concluído.

Por exemplo, o comando a seguir aumenta a cota de tamanho do objeto na configuração da sessão do PowerShell no computador remoto de 10 MB (o valor padrão) para 11 MB.

        Set-PSSessionConfiguration -Name microsoft.PowerShell ` 
            -MaximumReceivedObjectSizeMB 11 -Force

Para obter mais informações sobre o cmdlet New-PSSessionOption, consulte New-PSSessionOption.

Para obter mais informações sobre as cotas do WS-Management, consulte o tópico de ajuda para o provedor de WSMan (digite "Get-Help WSMan").

COMO RESOLVER ERROS DE TEMPO LIMITE

        ERROR: The WS-Management service cannot complete the operation within
        the time specified in OperationTimeout.

Você pode usar tempos limite para proteger o computador local e o computador remoto de uso excessivo de recursos, acidental ou mal-intencionado. Quando tempos limite é definido em ambos os locais e computadores remotos, Windows PowerShell use as configurações de tempo limite menor.

Os seguintes limites estão disponíveis na configuração básica.

  1. -- O provedor WSMan (WSMan:) fornece várias configurações de tempo limite do lado do cliente e no lado do serviço, como a configuração de MaxTimeoutms, como as configurações MaxTimeoutms no nó WSMan:\<ComputerName> e as configurações EnumerationTimeoutms e MaxPacketRetrievalTimeSeconds no nó WSMan:\<ComputerName>\Service.

  2. -- Você pode proteger o computador local usando os parâmetros CancelTimeout, IdleTimeout, OpenTimeout, e OperationTimeout de cmdlet New-PSSessionOption e a variável de preferência $PSSessionOption.

  3. -- Você também pode proteger o computador remoto, definindo valores de tempo limite por meio de programação na configuração da sessão para a sessão.

Quando um valor de tempo limite não permite que uma operação seja concluída,Windows PowerShell termina a operação e gera um erro.

Para resolver o erro, altere o comando para concluir dentro do intervalo de tempo limite ou determinar a origem do tempo limite e aumentar o intervalo de tempo limite para permitir que o comando ser concluído.

Por exemplo, os seguintes comandos usam o cmdlet New-PSSessionOption para criar um objeto de opção de sessão com um valor OperationTimeout de 4 minutos (em MS) e, em seguida, usam o objeto de opção de sessão para criar uma sessão remota.

        C:\PS> $pso = New-PSSessionoption -OperationTimeout 240000

        C:\PS> New-PSSession -ComputerName Server01 -sessionOption $pso

Para obter mais informações sobre os limites do WS-Management, consulte o tópico de ajuda para o provedor de WSMan (digite "Get-Help WSMan").

Para obter mais informações sobre o cmdlet New-PSSessionOption, consulte New-PSSessionOption.

SOLUCIONANDO PROBLEMAS DE COMPORTAMENTO SEM RESPOSTA

Esta seção aborda problemas de comunicação remota que impedem a conclusão de um comando e impedem ou adiar o retorno do Windows PowerShell prompt.

COMO INTERROMPER UM COMANDO

Alguns programas do Windows nativos, como programas com uma interface do usuário, aplicativos que pedem a entrada do console e aplicativos de console que usam o Win32 API do console, não funcionam corretamente no Windows PowerShell host remoto.

Quando você usar esses programas, você poderá ver um comportamento inesperado, como nenhuma saída, saída parcial ou um comando remoto não é concluído.

Para encerrar um programa que não responde, digite CTRL + C. Para exibir todos os erros que podem ter sido relatados, digite "$error" no host local e a sessão remota.

COMO RECUPERAR DE UMA FALHA DE OPERAÇÃO

         ERROR: The I/O operation has been aborted because of either a thread exit
         or an  application request.

Esse erro é retornado quando uma operação for encerrada antes de ser concluída. Normalmente, ele ocorre quando o serviço WinRM pára ou reinicia enquanto outras operações do WinRM estão em andamento.

Para resolver esse problema, verifique se o serviço WinRM está em execução e tente o comando novamente.

  • 1. Inicie o Windows PowerShell com a opção "Executar como administrador".

  • 2. Execute o seguinte comando:

             Start-Service WinRM
    
  • 3. Execute novamente o comando que gerou o erro.

CONSULTE TAMBÉM

Versão online: https://technet.microsoft.com/library/hh847850 (v=wps.630).aspx

about_Remote

about_Remote_Requirements

about_Remote_Variables