我正在尝试使用 PsExec 远程启动一个程序,但是当尝试连接时我收到错误消息“访问被拒绝。”。
在 SU 或其他论坛上找到的大多数答案都不起作用。大多数情况下,这是因为调用 PsExec 的用户帐户无法访问 Admin$ 共享,而我可以毫无问题地访问该共享。
呼叫帐户和远程帐户均位于同一域中
PsExec.exe \\remotePcName -u Domain\Username -p Password -i -d cmd /c "" something.bat
我已尝试以域管理员帐户和我的域帐户(也是域管理员)的身份运行 PsExec。
奇怪的是,直到最近它还在运行,但我不知道域或窗口上是否有任何变化会阻止它。
答案1
PsExec 失败并显示错误消息“访问被拒绝”的原因有很多。下面我列出了其中一些(希望是大多数):
- PsExec 未以管理员身份运行(如果域管理员不起作用,请尝试本地管理员)。
- 确保您的用户帐户有权访问
\\$machine\ADMIN$
。 - 检查远程计算机上的防火墙是否阻止了您的访问。
更多建议请参阅帖子
PSEXEC,访问被拒绝错误。
我在下面重现
詹姆斯的回答:
正如有人提到添加此注册表项,然后重新启动计算机:
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
读这篇知识库文章了解它的作用以及为什么需要它
禁用防火墙(注意 - 这将使您失去任何防火墙保护)
netsh advfirewall set allprofiles state off
如果目标用户的密码为空白,而您不想添加,请在目标上运行:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] "LimitBlankPasswordUse"=dword:00000000
这对我来说不起作用,但我已经读过它在一些地方对其他人起作用,在目标执行上:
开始 -> 运行 -> secpol.msc -> 本地策略 -> 安全选项 -> 网络访问:共享 > 和本地帐户的安全模型 > 经典 - 本地用户以自己的身份进行身份验证
如果已经是“经典”:
移至“仅限访客 - ..”从提升的命令提示符运行 gpupdate \force 移回“经典 - ..”再次从提升的命令提示符运行 gpupdate \force
这解决了我的问题:
从提升的命令提示符“net use”在目标上运行,查看输出图表并查看远程列中列出的共享(我只删除了断开连接的共享 - 您可以全部尝试)运行“net use [列表之前的远程路径] /delete”然后运行'net use \target\Admin$ /user:[用户名]'输入提示密码请求(如果 PW 为空,只需按 Enter 键),viola 应该可以工作。
在链接帖子的其他答案中可以找到更多建议。