以pipe理员身份运行远程PowerShell

在深入探讨这个问题之前,我发现了其他一些类似于我的问题,但是他们还没有解决我的问题。 这里是他们的链接:

远程运行一个脚本调用“以pipe理员身份运行”

https://stackoverflow.com/questions/10724591/how-to-remote-execute-an-elevated-remote-script-in-powershell

现在问题:我需要通过Powershell在远程机器上运行Windows Update脚本。 如果我通过mstsc远程访问机器,以pipe理员身份运行Powershell并运行Windows Update脚本,它工作正常。 如果我通过mstsc远程进入机器,运行Powershell而没有select以pipe理员身份运行,并运行脚本,我会得到一堆错误沿着这一行:“exception调用”下载“与”0“参数:来自HRESULT的exception:0x80240044“”

这只会发生,如果我没有pipe理员权限运行它。

我正在运行的脚本是这样的: http : //www.ehow.com/how_8724332_use-powershell-run-windows-updates.html

现在,当我使用Enter-PSSession远程访问机器并尝试运行脚本时,出现错误,但是它们有点不同。 他们沿着这条线:“exception调用”0“参数的CreateUpdateDownloader:”访问被拒绝。 (从HRESULTexception:0x80070005(E_ACCESSDENIED))“”

我很乐于提出可能导致这个问题的build议,但我想我已经明白了。 我相信Powershell会话需要使用提升的权限运行。 我知道如何在通过mstsc进行远程处理时执行此操作,但是我一直无法通过Enter-PSSessionfind方法。 我已经谷歌和谷歌search,但没有发现任何东西。 如果有人可以帮助解决这个问题,那将不胜感激。

要运行远程PowerShell命令,您必须以启动命令的计算机上的pipe理员身份运行,至less在开箱即用的configuration中。 这是PowerShell远程处理的文档化限制,尽pipe如果您确定可以放宽默认值,但是这将涉及到对PowerShellconfiguration的更改。

对于远程执行,您是否使用-credentialsparameter passing凭据? 例如

Enter-PSSession -Credential(Get-Credential) -ComputerName <remotehost> 

当您远程执行命令时,它们将以pipe理权限运行,因为只有pipe理员可以在PowerShell中远程执行命令。 错误,“exception调用”CreateUpdateDownloader“与”0“参数:”访问被拒绝。 (从HRESULTexception:0x80070005(E_ACCESSDENIED))“”不是一个本地PowerShell的错误,它表明这一行失败:$ UpdatesDownloader = $ UpdateSession.CreateUpdateDownloader(),这一行试图创buildupdatedownloader对象使用$ UpdateSession = New-Object -ComObject Microsoft.Update.Session对象。

如果不知道下载者试图联系到哪里,我只能假定母亲身份,这可能表明您在远程连接到服务器时拥有的凭据可能是代理的主题。 这是一种常见的安全做法,远程连接到机器的用户无法直接从互联网上下载项目(不pipe信源多么可信)。

希望这有助于克里斯

http://msdn.microsoft.com/en-us/library/windows/desktop/aa387288(v=vs.85).aspx

它不允许你远程调用它。

这就是原因。 您可以通过计划任务来完成。