gpt4 book ai didi

Powershell:调用命令权限问题

转载 作者:行者123 更新时间:2023-12-03 14:36:57 24 4
gpt4 key购买 nike

摘要: 在另一台计算机上运行“get-wmiobject”可以正常工作。但是当我“调用命令”“get-wmiobject”时,我的访问被拒绝。

详细信息:我在我们的中心站点有一个工作站(Computer-Central),我从中运行了一个 list 脚本。库存脚本为我们所有远程站点上的每个 IP 循环执行多个“get-wmi”命令。如果我以域管理员身份登录 Computer-Central,脚本可以正常工作。

我现在在那些远程站点之一。我当前的工作站是 (Computer-SiteA)。所以我无法直接登录Computer-Central;我必须进入 RDP。问题是,RDP session 在脚本完成之前超时(大约需要 12 小时)。所以我无法进入 RDP,启动脚本,然后走开。由于各种原因,制作计划任务也出来了。

Powershell 远程处理已启用。我使用域管理员帐户登录 Computer-SiteA 并运行以下命令:

invoke-command -computername Computer-Central {dir c:}

这工作正常。因此,我使用以下命令启动了 list 脚本(同样,在 Computer-SiteA 上以域管理员身份运行):
invoke-command -computername Computer-Central -filepath c:\inventory.ps1

脚本启动并运行了一夜。但是 get-wmi 命令都产生了“拒绝访问”错误。
我 RDP 进入 Computer-Central 并运行以下命令:
get-wmiobject -class win32_computersystem -property name -computername Computer-SiteB

这工作正常。我得到了 WMI 信息。

然后我登录到 Computer-SiteA 并运行以下命令:
invoke-command -computername Computer-Central {get-wmiobject -class     win32_computersystem -property name -computername Computer-SiteB}

这因“拒绝访问”而失败。我以域管理员身份登录,甚至执行了“以不同用户身份运行”以确保 PS 控制台作为我的域管理员帐户打开。

我对此感到非常困惑。 “调用命令”应该使用我在本地 PC 上使用的凭据在远程系统上启动 Powershell.exe 进程。 “get-wmiobject”命令应该再次使用相同的凭据将 WMI 查询从远程 PC 传递到目标 PC。但情况似乎并非如此。

有任何想法吗?

编辑:我运行此命令是为了使计算机中心查询本身。
invoke-command -computername Computer-Central {get-wmiobject -class     win32_computersystem -property name -computername Computer-Central}

那奏效了。如果我在针对自身的远程系统上调用“get-wmiobject”,它就可以工作。如果我在针对第三个系统的远程系统上调用“get-wmiobject”,它将失败。我希望这有帮助。

最佳答案

问题是您对远程计算机使用 NTLM (Windows) 身份验证,然后尝试连接到另一台计算机。这是经典的“双跳”问题:您在机器 A 上,对机器 B 进行身份验证,然后尝试从 B(通过 WMI)连接到机器 C。

http://blogs.msdn.com/b/besidethepoint/archive/2010/05/09/double-hop-authentication-why-ntlm-fails-and-kerberos-works.aspx

它适用于 RDP,因为您使用 RDP 从 A 连接到 B 并为 B 提供您的用户名和密码(您必须为 RDP 实际输入。)此时,B 能够使用 NTLM 连接到 C。当您不要使用 RDP,您正在使用 NTLM 从 A 连接到 B,并且不允许在不再次提供用户名和密码的情况下从 B 到 C 再次使用 NTLM。

谢天谢地,PowerShell 有一个解决方案,它被称为 CredSSP 身份验证。虽然它确实需要一些额外的工作来设置,但是一旦完成,您就可以做您需要做的事情。这是一个很好的演练:

https://blogs.technet.microsoft.com/heyscriptingguy/2012/11/14/enable-powershell-second-hop-functionality-with-credssp/

CredSSP 将您的用户名和密码从 A“隧道”到 B,以便您可以通过 NTLM 向 C 进行身份验证。当然,您必须重新输入您的凭据 - 它无法确定您从初始登录到 A(可能是您的台式机或笔记本电脑)的密码。

希望这可以帮助,

关于Powershell:调用命令权限问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17237512/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com