PSEXEC,访问被拒绝错误


69

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

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


我也遇到了这个问题,但是截至5/31/20,这里或其他地方的解决方案都没有对我有用。
David Spector

Answers:


75

嗨,我在这里从许多在线来源中获取有关“访问被拒绝”的各种解决方案的摘要:可在此处找到大多数信息(包括所需的要求) -sysinternal帮助

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

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

    阅读此知识库文章以了解其功能以及为什么需要它

  2. 禁用防火墙(注意-这将使您失去防火墙保护)

    netsh advfirewall将所有配置文件状态设置为关闭

  3. 如果目标用户的PW为空,并且您不想添加一个,请在目标上运行:

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

  4. 这对我没有用,但是我在目标执行时已经在几个地方阅读过,对其他人也是如此

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

    如果已经在“经典”中:

    从提升的命令提示符gpupdate \ force移至“仅来宾-..”运行从提升的命令提示符gpupdate \ force再次移至“经典-..”

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

    从提升的命令提示符“ net use”的目标上运行,查看输出图,并查看那里的远程列中列出的共享(我只删除了断开连接的共享-您可以全部尝试)运行“ net use [列表前的远程路径] / delete然后运行“ net use \ target \ Admin $ / user:[用户名]”,输入提示密码请求(如果为空PW,只需按Enter),中提琴应该可以工作。

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


2
1)帮帮我(也是半相关的,因为用户是目标服务器的本地用户,所以需要完全限定目标服务器名称的用户名)
Straff

4)为我工作时,我的Windows 7连接到Windows虚拟PC XP模式。谢谢!
2013年

转到文件和文件夹。->视图->向下滚动以在目标计算机上禁用“简单文件共享”。那对我有用。我首先尝试了所有其他方法。包括5个,刚刚报告服务器未启用远程管理
twobob '17

sysinternals帮助链接为forum.sysinternals.com/topic15919.html现在报告“ Windows Sysinternals论坛已移至TechNet论坛”,并在10秒钟内重定向,除了未发布到帖子,而是重定向到一些通用列表“ category = sysinternals&sort = lastpostdesc”。“ psexec无法启动”的帖子现在在这里:social.technet.microsoft.com/Forums/en-US/…,并且自我归因于Karl的第一条回复包含最低要求。
约翰v kumpf

此外,“常见问题解答”后已经转移到这里:social.technet.microsoft.com/Forums/en-US/...
约翰五世kumpf

22

我只是解决了一个相同的症状,通过创建注册表值HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system\LocalAccountTokenFilterPolicy,并将其设置为1的更多详细信息,请点击这里


2
是的,在这里工作。谢谢!更明确地说,这必须是REG_DWORD关键。
underscore_d

谢谢,我把他的内容放在了.reg文件中,瞧:<br/> codeWindows注册表编辑器版本5.00 [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System]“ LocalAccountTokenFilterPolicy” = dword:00000001code
frss-soft。 com


11

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

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

如果这不能解决您的问题,请确保目标计算机满足此处指定的最低要求。


1
“最低要求”帖子(回复)链接为forum.sysinternals.com/forum_posts.asp?TID=15919现在报告“ Windows Sysinternals论坛已移至TechNet论坛”并在10秒钟内重定向,除了未发布到该帖子外,而是一些通用列表“ category = sysinternals&sort = lastpostdesc”。“ psexec无法启动”的帖子现在在这里:social.technet.microsoft.com/Forums/en-US/…,并且自我归因于Karl的第一条回复包含最低要求。
约翰v kumpf

谢谢,@ johnvkumpf。根据您的建议修复了该链接,很高兴您看到它在原始帖子发布10年后仍然有用。下次可以建议对答案进行编辑(实际上,您可以评论而不是发表评论)。
eran

1
现在链接已死。
大卫·斯派克特

6

您可以尝试命令

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

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


当我运行此命令时,我得到:“命令成功完成。” 运行此命令的目的是什么?
demonicdaron

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"

当我在资源管理器中右键单击我的cmd文件并选择“以管理员身份运行”时,我仍然会收到“访问被拒绝”的信息。
大卫·斯派克特


4

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


好的,但是继续复制远程计算机上已经存在的系统命令似乎很浪费。
大卫·史派克特

3

我发现Sophos一直将psexec.exe放入“隔离区”部分。一旦我授权,它就可以正常运行。


2

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

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

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


2
您所提供的信息可能是正确的,准确的信息,但却是错误的问题。
Orangutech

我从防病毒程序(Malwarebytes)中排除了PSTOOLS目录,但仍然出现“访问被拒绝”的情况。
大卫·斯派克特

2

我遇到了AV隔离Psexec的情况-必须禁用读写扫描


1

对于可能偶然发现此问题的任何人。Windows 7上的Microsoft Windows最近发布了(2013年12月)安全更新,阻止了远程执行。请参阅http://support.microsoft.com/kb/2893294/en-us

我通过转到控制面板\程序\程序和功能\已安装的更新来卸载了安全更新。

在那之后它就起作用了。


1

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

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

我有一个较旧的版本无法正常工作。我用它通过Dell kace做了一些USMT工作,请客:)


我有PSEXEC 2.2,但是添加此键和值没有帮助。
大卫·斯派克特

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

1

我仍然使用psexec,即使在获胜10上也是如此psexec.exe。在Windows 10的win32文件夹中的替换为较旧的版本即可->我使用2.11.0.0版本。我使用的Windows 10版本只能在远程计算机上将.bat文件作为后台/隐藏进程运行。花了整整一天的时间来解决这个问题。

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

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

作为2009年问题的2016年答案,我不确定它还会增加什么,因为以前的答案中已经很好地记录了注册表项。
David Hoelzer

0

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

必须从本地通过控制面板或通过cmd运行以下命令来完成此操作:

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

尽管UAC已启用,请确保运行在cmd管理员


我得到的错误:Microsoft Web Driver无法与内置管理员帐户一起使用,或者在用户帐户控制已关闭的情况下不能使用。
Mike ASP

0

对于其他命令,我决定将网络从公共改为工作。
尝试再次使用psexec命令后,它再次工作。
因此,要使psexec正常工作,请尝试将网络类型从公共更改为工作或家庭。


0

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

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

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

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

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.