Antes de sumergirme en la pregunta, he encontrado varias otras preguntas que parecen similares a las mías, pero no han podido resolver mi problema. Aquí hay enlaces a ellos:
Ejecute de forma remota un script que invoque "Ejecutar como administrador"
/programming/10724591/how-to-remote-execute-an-elevated-remote-script-in-powershell
Ahora sobre la pregunta: necesito ejecutar un script de Windows Update en una máquina remota a través de Powershell. Si me conecto remotamente a la máquina a través de mstsc, ejecuto Powershell como administrador y ejecuto el script de Windows Update, funciona bien. Si me conecto remotamente a la máquina a través de mstsc, ejecuto Powershell SIN elegir la ejecución como administrador y ejecuto el script, obtendré un montón de errores en esta línea: "Excepción llamando a" Descargar "con argumento" 0 ":" Excepción de HRESULT: 0x80240044 ""
Esto solo sucede si lo ejecuto SIN privilegios de administrador.
El script que estoy ejecutando es este: http://www.ehow.com/how_8724332_use-powershell-run-windows-updates.html
Ahora, cuando me conecto remotamente a la máquina usando Enter-PSSession e intento ejecutar el script, obtengo errores, pero son un poco diferentes. Están en esta línea: "Excepción llamando" CreateUpdateDownloader "con argumento (s)" 0 ":" Acceso denegado. (Excepción de HRESULT: 0x80070005 (E_ACCESSDENIED)) ""
Estoy abierto a sugerencias sobre qué podría estar causando este problema, pero creo que lo tengo resuelto. Creo que la sesión de Powershell debe ejecutarse con privilegios elevados. Sé cómo hacer esto mientras me remoto a través de mstsc, pero no he podido encontrar una manera de hacerlo a través de Enter-PSSession. He buscado en Google y en Google, pero no he encontrado nada. Si alguien pudiera ayudar a arrojar algo de luz sobre esto, sería muy apreciado.
fuente
Respuestas:
Cuando ejecuta comandos de forma remota, se ejecutan con privilegios administrativos porque solo los administradores pueden ejecutar comandos de forma remota en powershell. El error, "Excepción llamando" CreateUpdateDownloader "con argumento (s)" 0 ":" Acceso denegado. (Excepción de HRESULT: 0x80070005 (E_ACCESSDENIED)) "" no es un error nativo de PowerShell, indica que esta línea está fallando: $ UpdatesDownloader = $ UpdateSession.CreateUpdateDownloader (), esta línea está tratando de crear el objeto updatedownloader usando $ UpdateSession = New-Object -ComObject Microsoft.Update.Session objeto.
Sin saber A DÓNDE el descargador intenta comunicarse, solo puedo asumir que la nave nodriza puede indicar que las credenciales que tiene mientras está conectado de forma remota a un servidor podrían ser objeto de un proxy. Esta es una práctica de seguridad común, los usuarios conectados remotamente a las máquinas no pueden descargar elementos directamente de Internet (sin importar qué tan confiable sea la fuente).
Espero que esto ayude, Chris
fuente
http://msdn.microsoft.com/en-us/library/windows/desktop/aa387288(v=vs.85).aspx
No le permite llamarlo de forma remota.
Esa es la razón. Puede hacerlo a través de la tarea programada.
fuente
Para ejecutar comandos remotos de PowerShell, DEBE ejecutarse como administrador en la máquina desde la que ejecuta los comandos, al menos en la configuración lista para usar. Esta es una limitación documentada de la comunicación remota de PowerShell, aunque es posible relajar los valores predeterminados si está determinado, pero eso implicará realizar cambios en la configuración de PowerShell.
Para la ejecución remota, ¿está pasando credenciales utilizando el parámetro -credentials? p.ej
fuente
Con respecto a las actualizaciones de Windows en servidores remotos, pude hacer que funcionara configurando un punto final JEA en el servidor remoto para que se ejecute como una cuenta virtual local.
Desde https://docs.microsoft.com/en-us/powershell/jea/session-configurations :
fuente