Antes de mergulhar na questão, encontrei várias outras perguntas que parecem semelhantes às minhas, mas elas não foram capazes de resolver o meu problema. Aqui estão os links para eles:
Executar remotamente um script chamando "Executar como Administrador"
/programming/10724591/how-to-remote-execute-an-elevated-remote-script-in-powershell
Agora, vamos à pergunta: preciso executar um script do Windows Update em uma máquina remota via Powershell. Se eu conectar à máquina via mstsc, executar o Powershell como administrador e executar o script do Windows Update, ele funcionará bem. Se eu conectar remotamente à máquina via mstsc, executar o Powershell SEM escolher a execução como administrador e executar o script, vou receber vários erros nesta linha: "Exceção ao chamar" Download "com o argumento" 0 ":" Exceção de HRESULT: 0x80240044 ""
Isso só acontece se eu executá-lo SEM privilégios de administrador.
O script que estou executando é o seguinte: http://www.ehow.com/how_8724332_use-powershell-run-windows-updates.html
Agora, quando eu desligo a máquina usando Enter-PSSession e tento executar o script, recebo erros, mas eles são um pouco diferentes. Eles estão nessa linha: "Exceção ao chamar" CreateUpdateDownloader "com" 0 "argumento (s):" Acesso negado. (Exceção de HRESULT: 0x80070005 (E_ACCESSDENIED)) ""
Estou aberto a sugestões sobre o que poderia estar causando esse problema, mas acho que já o descobri. Acredito que a sessão do Powershell precise ser executada com privilégios elevados. Eu sei como fazer isso durante a comunicação remota via mstsc, mas não consegui encontrar uma maneira de fazer isso via Enter-PSSession. Eu pesquisei no Google e pesquisei no Google, mas não encontrei nada. Se alguém pudesse ajudar a esclarecer isso, isso seria muito apreciado.
fonte
Respostas:
Quando você executa comandos remotamente, eles são executados com privilégios administrativos porque apenas os administradores têm permissão para executar comandos remotamente no PowerShell. O erro "Exceção ao chamar" CreateUpdateDownloader "com o argumento" 0 ":" Acesso negado. (Exceção de HRESULT: 0x80070005 (E_ACCESSDENIED)) "" não é um erro nativo do PowerShell, indica que esta linha está falhando: $ UpdatesDownloader = $ UpdateSession.CreateUpdateDownloader (), esta linha está tentando criar o objeto updatedownloader usando o $ UpdateSession = New-Object -ComObject Objeto Microsoft.Update.Session.
Sem saber para onde o downloader tenta alcançar, posso apenas assumir a nave-mãe, isso pode indicar que as credenciais que você possui enquanto conectado remotamente a um servidor podem estar sujeitas a um proxy. Essa é uma prática de segurança comum, os usuários conectados remotamente às máquinas não podem baixar itens diretamente da Internet (não importa o quão confiável seja a fonte).
Espero que isso ajude, Chris
fonte
http://msdn.microsoft.com/en-us/library/windows/desktop/aa387288(v=vs.85).aspx
Não permite que você chame remotamente.
Essa é a razão. Você pode fazer isso através da tarefa agendada.
fonte
Para executar comandos remotos do PowerShell, você PRECISA executar como administrador na máquina a partir da qual você inicia os comandos, pelo menos na configuração pronta para uso. Essa é uma limitação documentada do sistema de comunicação remota do PowerShell, embora seja possível relaxar os padrões se você estiver determinado, mas isso envolverá alterações na configuração do PowerShell.
Para a execução remota, você está passando credenciais usando o parâmetro -credentials? por exemplo
fonte
Em relação às atualizações do Windows em servidores remotos, consegui fazê-lo configurando um terminal JEA no servidor remoto para ser executado como uma conta virtual local.
Em https://docs.microsoft.com/en-us/powershell/jea/session-configurations :
fonte