以管理员身份运行远程PowerShell

Jon*_*Jon 17 powershell remote

在深入研究这个问题之前,我发现了其他几个与我的问题相似的问题,但它们都无法解决我的问题。以下是它们的链接:

远程运行调用“以管理员身份运行”的脚本

/sf/ask/750721401/

现在进入问题:我需要通过 Powershell 在远程机器上运行 Windows 更新脚本。如果我通过 mstsc 远程进入机器,以管理员身份运行 Powershell 并运行 Windows Update 脚本,它工作正常。如果我通过 mstsc 远程进入机器,在不选择以管理员身份运行的情况下运行 Powershell,然后运行脚本,我会在这一行中收到一堆错误:“使用“0”参数调用“下载”的异常:“来自 HRESULT 的异常:0x80240044""

仅当我在没有管理员权限的情况下运行它时才会发生这种情况。

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

现在,当我使用 Enter-PSSession 远程进入机器并尝试运行脚本时,我收到错误消息,但它们有点不同。它们沿着这条线:“使用“0”参数调用“CreateUpdateDownloader”的异常:“访问被拒绝。(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))""

我愿意接受有关可能导致此问题的建议的建议,但我想我已经弄清楚了。我相信 Powershell 会话需要以提升的权限运行。我知道如何在通过 mstsc 远程处理时执行此操作,但是我一直无法找到通过 Enter-PSSession 执行此操作的方法。我已经谷歌和谷歌搜索,但没有找到任何东西。如果有人可以帮助阐明这一点,将不胜感激。

小智 5

当您远程执行命令时,它们将以管理权限运行,因为只有管理员才被允许在 powershell 中远程执行命令。错误“使用“0”个参数调用“CreateUpdateDownloader”时出现异常:“访问被拒绝。(HRESULT 异常:0x80070005 (E_ACCESSDENIED))"" 不是本机 powershell 错误,它表明此行失败:$UpdatesDownloader = $UpdateSession.CreateUpdateDownloader(),此行尝试使用 $UpdateSession 创建 updatedownloader 对象= New-Object -ComObject Microsoft.Update.Session 对象。

在不知道下载程序尝试访问何处的情况下,我只能假设母舰,这可能表明您远程连接到服务器时拥有的凭据可能是代理的主题。这是一种常见的安全实践,远程连接到计算机的用户无法直接从互联网下载项目(无论来源多么可信)。

希望这有帮助,克里斯


小智 3

要运行远程 powershell 命令,您必须在启动命令的计算机上以管理员身份运行,至少在开箱即用的配置中是这样。这是 PowerShell 远程处理的记录限制,尽管如果您确定可以放宽默认设置,但这将涉及对 PowerShell 配置进行更改。

对于远程执行,您是否使用 -credentials 参数传递凭据?例如

Enter-PSSession -Credential(Get-Credential) -ComputerName <remotehost>
Run Code Online (Sandbox Code Playgroud)