PSEXEC 拒绝访问错误

当我使用 PSEXEC.exe 时,远程系统出现“拒绝访问”错误。

有办法解决吗?

263591 次浏览

PsExec 拥有其启动程序拥有的任何访问权限。它在常规 Windows 访问控制下运行。这意味着无论是谁启动了 PsExec (无论是您、调度程序还是服务等) ,都没有在目标计算机上拥有足够的权限,或者目标计算机没有正确配置。首先要做的是:

  1. 确保目标计算机熟悉 PsExec 的启动程序,无论是通过域还是通过在两台计算机上本地定义相同的用户和密码。
  2. 使用命令行参数指定目标计算机已知的用户(- u user-p password)

如果这没有解决您的问题,请确保目标机器满足最低要求 在此指明

通过创建注册表值 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system\LocalAccountTokenFilterPolicy并将其设置为1.详情请浏览此网页,我刚刚解决了一个相同的症状。

我发现了 PSEXEC (和其他 PS 工具)失败的另一个原因——如果有什么东西(比如说,病毒或木马)隐藏了 Windows 文件夹和/或它的文件,那么 PSEXEC 会失败,出现“访问被拒绝”错误,PSLIST 会给出错误“没有找到处理器性能对象”,你将被蒙在鼓里。

你可以 RDP; 你可以访问管理员 $share; 你可以远程查看驱动器内容等等,但没有迹象表明文件或文件夹被隐藏是原因。

我会把这些信息贴在几页上,我昨天一直在研究这个奇怪的问题的原因,所以你可能会在别处一字不差地看到这些信息——我只是想在其他人想弄明白为什么性能计数器与 PSEXEC 运行有关之前把这个消息放出去。

你可以试试这个命令

net use \\computername\ipc$ /user:adminname password

在使用 psexec 之前获得远程 PC 的管理权限。

尝试在目标(远程)计算机上设置此键,然后重新启动计算机:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"LocalAccountTokenFilterPolicy"=dword:00000001

参见: http://forum.sysinternals.com/topic10924.htmlhttp://www.brandonmartinez.com/2013/04/24/resolve-access-is-denied-using-psexec-with-a-local-admin-account/

嗨,我在这里放置了一个来自网上许多来源的摘要,针对“访问被拒绝”的各种解决方案: 大多数信息可以在这里找到(包括所需的需求)-< a href = “ http://forum.sysinterals.com/topic15919.html”rel = “ norefrer”> sysInternal help

  1. 正如有人提到的,添加这个注册表项,然后重新启动计算机:

    添加 HKLM 软件 MicrosoftWindowsCurrentVersion 策略系统 /v LocalAccountTokenFilterPolicy/t REG _ DWORD/d 1/f

    阅读 这篇知识库文章了解它的作用和原因 需要

  2. 禁用防火墙(注意-这将使你没有任何防火墙 保护)

    设置所有配置文件状态

  3. 如果目标用户有一个空白 PW,你不想添加一个,运行在目标:

    [ HKEY _ LOCAL _ MACHINE SYSTEM CurrentControlSet Control LSA ] “ LimitBlankPasswordUse”= dword: 0000000

  4. 这对我来说不起作用,但是我在一些地方读到过它对其他人起作用, 按目标执行:

    Start-> Run-> secpol.msc-> Local Policy-> Security Options-> Network Access: Share > and Security model for Local account > Classic-Local users 凭借自己进行身份验证

    如果已经在“经典”中:

    从升级命令提示符 gpupdate force 运行到“ Guest only-. .” 再次从升级命令提示符 gpupdate force 运行

  5. 这个解决了我的问题:

    在目标上运行从升级命令提示符“ net use”查看输出图表和远程列中列出的共享(我只删除了断开的那些-你可以尝试所有)运行“ net use [ remote path from before list ]/delete”然后运行“ net use target 管理员 $/user: [ user name ]”输入提示密码请求(如果空 PW 只是按回车键) ,中提琴应该可以工作。

祝你好运,希望这能节省一些人的时间。

我有个案子 AV 在隔离 Psexec 不得不关闭访问扫描

我只是添加了“-”参数。它使 Psexec 的副本可执行到远程机器。所以它的工作没有访问错误。

对于任何人谁可能会偶然发现这一点。最近(2013年12月) Windows7上的 MicrosoftWindows 安全更新阻止了远程执行。 参见 http://support.microsoft.com/kb/2893294/en-us

我卸载了安全更新通过去控制面板程序和功能安装更新

在那之后就奏效了。

我发现 Sophos 一直把 psexec.exe 放在隔离区,我一授权,它就运行正常了。

下面的方法起作用了,但只是在我将 PSEXEC 从 Microsoft 升级到2.1之后。

[ HKEY _ LOCAL _ MACHINE SOFTWARE MicrosoftWindowsCurrentVersion 策略系统] “ LocalAccountTokenFilterPolicy”= dword: 0000001参见: Http://forum.sysinternals.com/topic10924.html

我有个稍微老一点的版本,但是不管用。我用它来做一些 USMT 的工作通过戴尔凯斯,工作了一个奖励:)

我也遇到了同样的问题,经过一番努力,我找到了一个简单而全面的解决办法:

  1. 我使用 Runas在管理员帐户中运行脚本
  2. 我使用 - psExec 中的 s 参数在系统帐户中运行
  3. 在 PsExec 中,我使用管理帐户 再次登录
  4. 你可以使用 & 运行多个命令
  5. 请记住用实际值替换[ USERNAME ]、[ PASSWORD ]、[ COMPUTERNAME ]、[ COMMAND1]和[ COMMAND2]

代码如下:

runas /user:[USERNAME] "psexec -e -h -s -u [USERNAME] -p [PASSWORD] \\[COMPUTERNAME] cmd /C [COMMAND1] & [COMMAND2]"


如果要在另一台机器上调试脚本,请运行以下模板:

runas /user:[USERNAME] "psexec -i -e -h -s -u [USERNAME] -p [PASSWORD] \\[COMPUTERNAME] cmd /C [COMMAND1] & [COMMAND2] & pause"

在 WindowsServer2012R2上,我无法从用户帐户运行

psexec -u administrator -p password \\machinename -h -s -d -accepteula cmd.exe

但是如果你不使用参数 -h -s运行,它会工作得很好。这就是为什么我用这个来解决我的问题:

psexec -accepteula -u administrator -p password \\machinename %PathToLocalUtils%\psexec.exe -h -s -d  cmd.exe

我仍然使用 psexec,即使赢了10场。用旧版本替换 Windows 10的 win32文件夹中的 psexec.exe-> I use version 2.11.0.0。我使用的 Windows10版本只能运行。Bat 文件作为远程计算机上的后台/隐藏进程。我花了一整天才想明白。

将注册表项从上方添加到远程计算机也会有所帮助:

   reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

除非我关闭 UAC,否则我无法访问远程计算机。

这必须在本地完成,无论是从控制面板还是通过 cmd 运行以下命令:

reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f

启用 UAC时,请确保将 Cmd作为 管理人运行。

对于一个不同的命令,我决定将网络从公共改为工作。
在尝试再次使用 psexec 命令之后,它再次工作了。
因此,为了让 psexec 工作,尝试将您的网络类型从公共改为工作或家庭。

我尝试了很多方法,但我不能使用 Psexec。它提供“拒绝访问”。在我将目标用户帐户类型从 标准改为 管理员之后,我通过 psexec 连接了机器。

我研究了为什么管理类型的帐户是必需的,然后我发现 这个答案。

您可以这样更改目标计算机用户帐户: 控制面板-> 用户帐户-> 更改帐户类型。如果您登录了标准帐户,则必须输入管理帐户和密码才能更改该帐户。

之后,我用以下命令登录: psexec \\remotepcname -u remoteusername -p remotepassword cmd

尝试了以上所有建议,但仍然无法解决错误。最后,在进行以下更改之后,就可以成功地运行 PSexec 命令了。

事实证明,当你有 UAC 启用 psexec 不工作,因为假设。我们需要设置 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA为0,然后 psexec 开始按预期工作。