我正在使用PSEXEC.exe为远程系统获取“拒绝访问”错误。
有关如何解决这个问题的任何想法?
嗨,我在这里放置了许多来源的摘要,以获取“访问被拒绝”的各种解决方案:大多数信息可以在这里找到(包括所需的要求) - sysinternal help
祝你好运,希望这能节省一些时间。
我有一个案例,AV隔离Psexec - 必须禁用按访问扫描
我发现PSEXEC(和其他PS工具)失败的另一个原因 - 如果某些东西(比如,病毒或木马)隐藏了Windows文件夹和/或其文件,那么PSEXEC将因“访问被拒绝”错误而失败,PSLIST将给出错误“未找到处理器性能对象”,并且您将被置于黑暗中。
你可以RDP;您可以访问admin $ share;您可以远程查看驱动器内容等,但没有迹象表明隐藏文件或文件夹是原因。
我将在昨天尝试确定这个奇怪问题的原因的几个页面上发布这些信息,所以你可能会在其他地方逐字逐句地看到这一点 - 只是想在其他人拔掉头发之前我就把它说出来了试图理解为什么性能计数器与PSEXEC运行有关。
对于任何可能偶然发现此事的人。最近(2013年12月)Windows 7上的Microsoft Windows安全更新阻止了远程执行。见http://support.microsoft.com/kb/2893294/en-us
我通过转到控制面板\程序\程序和功能\已安装的更新来卸载安全更新
它之后就可以了。
以下工作,但只有在我将PSEXEC从Microsoft升级到2.1之后。
[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System]“LocalAccountTokenFilterPolicy”= dword:00000001请参阅:http://forum.sysinternals.com/topic10924.html
我有一个稍微旧的版本,但没有用。我用它来做一些USMT工作,通过戴尔kace,工作了一个款待:)
在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
我仍然使用psexec
,即使在win 10.替换Windows 10的psexec.exe
文件夹中的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
除非我禁用了UAC,否则我无法访问远程计算机。
这必须在本地完成,无论是从控制面板还是通过cmd运行以下内容:
reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
启用UAC时,请确保以管理员身份运行cmd。
对于不同的命令,我决定将网络从公共更改为工作。 在尝试再次使用psexec命令后,它再次起作用。 因此,要让psexec工作,请尝试将您的网络类型从公共更改为工作或家庭。
我刚刚解决了一个相同的症状,通过创建注册表值HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system\LocalAccountTokenFilterPolicy
并将其设置为1. More details are available here。
PsExec拥有其启动器具有的任何访问权限。它在常规Windows访问控制下运行。这意味着无论是谁启动了PsExec(无论是您,调度程序,服务等),目标计算机上都没有足够的权限,或者目标计算机配置不正确。首先要做的是:
如果这不能解决您的问题,请确保目标机器符合最低要求specified here。
This帮助了我的情况:
cmdkey.exe /add:<targetname> /user:<username> /pass:<password>
psexec.exe \\<targetname> <remote_command>
您可以尝试该命令
net use \\computername\ipc$ /user:adminname password
在使用psexec之前获取远程PC上的管理员权限。
我刚刚添加了“-с”参数。它使Psexec可复制到远程机器。所以它没有访问错误。
我有同样的问题。经过艰苦的努力,我找到了一个简单而完整的解决方案:
代码如下所示:
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"
尝试在目标(远程)机器上设置此键,然后重新启动机器:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"LocalAccountTokenFilterPolicy"=dword:00000001
见:http://forum.sysinternals.com/topic10924.html和http://www.brandonmartinez.com/2013/04/24/resolve-access-is-denied-using-psexec-with-a-local-admin-account/
我发现Sophos继续将psexec.exe放入隔离区。一旦我批准它,它运行正常。