以管理员身份运行远程Powershell


14

在深入探讨这个问题之前,我发现了其他几个看起来与我相似的问题,但是它们并不能解决我的问题。这里是它们的链接:

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

/programming/10724591/how-to-remote-execute-an-elevated-remote-script-in-powershell

现在开始讨论问题:我需要通过Powershell在远程计算机上运行Windows Update脚本。如果我通过mstsc远程访问计算机,请以管理员身份运行Powershell并运行Windows Update脚本,那么它将正常工作。如果我通过mstsc远程访问计算机,运行Powershell而不选择以管理员身份运行,然后运行脚本,则我将在这条线上收到很多错误:“异常调用“ Download”,参数为“ 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执行此操作的方法。我有Googled和Googled,但没有找到任何东西。如果有人可以帮助阐明这一点,将不胜感激。


我不是要测试的控制台,但是如果获得远程etsn会话(Enter-PSSession),则可以键入“启动过程PowerShell –Verb RunAs”,然后按Enter。这会给您管理员提示吗?如果是这样,我将其更改为您可以接受的答案。如果没有,我将在回到办公桌时进行测试。
TheCleaner

这里可能的答案serverfault.com/a/474031/23300
Nic

Answers:


3

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

在不知道下载程序试图到达哪里的情况下,我只能假设是母公司,这可能表明您在远程连接到服务器时拥有的凭据可能是代理的主题。这是一种常见的安全做法,远程连接到计算机的用户无法直接从Internet下载项目(无论来源如何受信任)。

希望这会有所帮助,克里斯



2

要运行远程Powershell命令,您必须至少在现成的配置中以管理员身份在启动命令的计算机上运行。这是PowerShell远程处理的已记录限制,尽管可以根据需要放宽默认设置,但这将涉及对PowerShell配置进行更改。

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

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

在Windows 2012 Server且未设置AD的情况下,请尝试使用“ MicrosoftAccount \ Administrator”作为凭据,并使用远程管理员的密码。在我看来,使用不带AD的完全合格的用户名似乎一直都是不必要的麻烦。
fuero 2013年

1

关于远程服务器上的Windows Update,我可以通过在远程服务器上设置JEA终结点以使其作为本地虚拟帐户运行来使其运行。

https://docs.microsoft.com/zh-cn/powershell/scripting/learn/remoting/jea/session-configurations中

本地虚拟帐户

如果此JEA端点支持的角色全部用于管理本地计算机,并且本地管理员帐户足以成功运行命令,则应将JEA配置为使用本地虚拟帐户。虚拟帐户是特定用户唯一的临时帐户,并且仅在其PowerShell会话期间有效。在成员服务器或工作站上,虚拟帐户属于本地计算机的Administrators组,并且可以访问大多数系统资源。在Active Directory域控制器上,虚拟帐户属于域的Domain Admins组。

快速修复¹:

(1.)在ComputerB(远程服务器)上创建一个新的不受限制(且持久!)的会话配置:

New-PSSessionConfigurationFile -RunAsVirtualAccount -Path .\VirtualAccount.pssc
# Note this will restart the WinRM service:
Register-PSSessionConfiguration -Name 'VirtualAccount' [-ShowSecurityDescriptorUI] -Path .\VirtualAccount.pssc -Force
# Check the Permission property:
Get-PSSessionConfiguration -Name 'VirtualAccount'
# Those users will have full unrestricted access to the system!

(2.)从ComputerA(本地客户端)连接到ComputerB上的不受限制的会话配置:

New-PSSession -ComputerName 'ComputerB' -ConfigurationName 'VirtualAccount' | Enter-PSSession
[ComputerB]: new-object -com "Microsoft.Update.Downloader" # Yay!

¹复制自/programming//a/60046097/1322112


这对我有帮助!感谢您提醒我JEA很棒!
B_Dubb42
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.