78

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

关于如何解决这个问题的任何想法?

4

19 回答 19

83

嗨,我在这里从许多在线来源汇总了“拒绝访问”的各种解决方案:大多数信息都可以在此处找到(包括所需的要求) -sysinternal 帮助

  1. 正如有人提到的那样,添加这个 reg 密钥,然后重新启动计算机:

    注册添加 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

    阅读这篇知识库文章,了解它的作用以及为什么需要它

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

    netsh advfirewall 设置 allprofiles 状态关闭

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

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] "LimitBlankPasswordUse"=dword:00000000

  4. 这对我不起作用,但我在几个地方读过它对其他人有用,目标执行:

    开始 -> 运行 -> secpol.msc -> 本地策略 -> 安全选项 -> 网络访问:共享 > 本地帐户的安全模型 > 经典 - 本地用户以自己的身份进行身份验证

    如果已经在“经典”中:

    移动到“仅限访客 - ..”从提升的命令提示符 gpupdate \force 运行回到“经典 - ..”再次从提升的命令提示符 gpupdate \force 运行

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

    从提升的命令提示符“net use”在目标上运行查看输出图表和远程列中列出的共享(我只删除了断开连接的共享 - 你可以全部尝试)运行“net use [remote path from before list] /delete " 然后运行 ​​'net use \target\Admin$ /user:[user name]' 输入提示密码请求(如果为空 PW 只需按 Enter 键),viola 应该可以工作。

祝你好运,希望这可以节省某人的时间。

于 2012-12-31T16:05:16.640 回答
23

我刚刚通过创建注册表值HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system\LocalAccountTokenFilterPolicy并将其设置为 1解决了相同的症状。更多详细信息可在此处获得

于 2011-12-25T15:20:30.137 回答
12

对我有帮助:

cmdkey.exe /add:<targetname> /user:<username> /pass:<password>
psexec.exe \\<targetname> <remote_command>
于 2015-10-15T09:45:36.107 回答
11

PsExec has whatever access rights its launcher has. It runs under regular Windows access control. This means whoever launched PsExec (be it either you, the scheduler, a service etc.) does not have sufficient rights on the target machine, or the target machine is not configured correctly. The first things to do are:

  1. Make sure the launcher of PsExec is familiar to the target machine, either via the domain or by having the same user and password defined locally on both machines.
  2. Use command line arguments to specify a user that is known to the target machine (-u user -p password)

If this did not solve your problem, make sure the target machine meets the minimum requirements, specified here.

于 2009-05-06T08:37:33.260 回答
7

你可以试试命令

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

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

于 2012-07-07T03:45:24.137 回答
5

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

[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-管理员帐户/

于 2012-09-05T11:04:48.973 回答
5

我有同样的问题。经过一番努力,我找到了一个简单而完整的解决方案:

  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"
于 2014-09-26T18:42:20.393 回答
4

我刚刚添加了“-с”参数。它使 Psexec 复制可执行到远程机器。因此它可以正常工作而不会出现访问错误。

于 2013-04-29T06:38:42.267 回答
3

我发现 Sophos 一直将 psexec.exe 放入 Quarantine 部分。一旦我授权它,它运行良好。

于 2014-03-12T21:16:32.410 回答
2

我有一个案例,AV 正在隔离 Psexec - 必须禁用按访问扫描

于 2013-04-08T11:43:01.297 回答
2

我找到了 PSEXEC(和其他 PS 工具)失败的另一个原因 - 如果某些东西(...比如说,病毒或木马)隐藏了 Windows 文件夹和/或其文件,那么 PSEXEC 将失败并出现“访问被拒绝”错误,PSLIST将给出错误“找不到处理器性能对象”,而您将一无所知。

您可以在 RDP 中;您可以访问 admin$ 共享;您可以远程查看驱动器内容等,但没有迹象表明文件或文件夹被隐藏是原因。

我将把这些信息发布在昨天我正在阅读的几页上,同时试图确定这个奇怪问题的原因,所以你可能会在其他地方逐字看到这个 - 只是以为我会在其他人拔掉头发之前把这个词说出来从根本上试图理解为什么性能计数器与 PSEXEC 运行有关。

于 2012-01-17T14:57:40.387 回答
2

psexec即使在 win 10 上,我仍然使用。将psexec.exeWindows 10win32文件夹中的 替换为旧版本即可使用 -> 我使用版本 2.11.0.0。我使用的 Windows 10 版本只会在远程计算机上将 .bat 文件作为后台/隐藏进程运行。花了一整天才弄清楚这一点。

从上面添加注册表项到远程计算机也有帮助:

   reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
于 2016-11-11T07:39:58.857 回答
1

以下工作,但只有在我从 Microsoft 将 PSEXEC 升级到 2.1 之后。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] "LocalAccountTokenFilterPolicy"=dword:00000001 参见:http: //forum.sysinternals.com/topic10924.html

我有一个稍旧的版本,但无法正常工作。我用它通过戴尔 kace 做一些 USMT 工作,工作很愉快 :)

于 2014-04-01T13:01:29.763 回答
1

For anybody who may stumble upon this. There is a recent (Dec 2013) Security Update from Microsoft Windows on Windows 7 that is preventing remote execution. See http://support.microsoft.com/kb/2893294/en-us

I uninstalled the Security Update by going to Control Panel\Programs\Programs and Features\Installed Updates

It worked right after that.

于 2014-01-15T21:45:38.457 回答
1

在 Windows Server 2012 R2 上,我无法从用户帐户运行

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
于 2016-07-20T13:01:35.560 回答
0

除非我禁用了UAC,否则我无法访问远程机器。

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

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

启用UAC后,请确保以管理员身份运行cmd

于 2018-05-24T12:21:30.947 回答
0

我尝试了很多方法,但我无法使用psexec。它给出“拒绝访问”。将目标用户帐户类型从Standard更改为Admin后,我通过 psexec 连接了机器。

我研究了需要管理员类型帐户的原因,然后我找到了这个答案。

您可以通过以下方式更改目标机器用户帐户:控制面板 -> 用户帐户 -> 更改帐户类型。如果您登录标准帐户,则必须输入管理员帐户和密码才能更改该帐户。

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

于 2020-03-27T21:47:28.367 回答
0

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

于 2018-06-29T09:01:12.433 回答
0

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

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

于 2021-11-03T04:14:27.727 回答