问题 PSEXEC - “处理无效”以系统用户身份运行命令时


如果从用户生成的命令提示符运行,这是可以正常工作的命令:

PSEXEC \\xxx.xxx.xxx.xxx -u xxxx -p xxxx -accepteula cmd /c "TYPE C:\Pyxislog\PYXIS01.log|Find/i "%ID%"" >nul

但是,如果我尝试从系统调用的cmd提示符运行它,我得到这个:

Couldn't access 10.219.149.65:
The handle is invalid.
Connecting to 10.219.149.65...

它必须作为系统用户运行,因为它将通过作为系统用户运行的远程软件工具进行部署。这是psexec的限制吗?是的,用户名和密码具有管理权限。


985
2017-12-01 19:59


起源



答案:


经过大量研究后,它是一种Windows安全功能,可以阻止对系统用户的所有网络访问,包括以另一个用户身份运行任务。我发现绕过这个问题的最好方法是创建一个计划任务来从管理员帐户运行psexec。


10
2018-04-18 12:09





Psexec强制通过添加使用系统用户帐户 -s 参数。

我们使用psexec在远程计算机中启动某些任务,并在数据库表中登录。 当我们不使用-s参数时,user会显示为domain \ administrator但是如果你使用的话 -s参数显示为“System”

对于无效句柄消息,请检查:

https://superuser.com/questions/200938/psexec-the-handle-is-invalid


1
2017-12-01 20:01



感谢您的意见,但您可能会误解我的意思。如果我运行我的完整批处理文件,该行正常工作,因为我正在运行批处理文件作为用户帐户。但是,如果我尝试将程序包部署到它手动运行的同一台计算机上,则会失败,因为部署运行的批处理文件是SYSTEM用户。我不需要PSEXEC来访问远程计算机上的系统帐户,我需要它来访问管理员帐户。 - bill
您是否在psexec登录中使用相同的用户帐户?我猜你是 - Carlos Landeras
是的,例如我将上面为PSEXEC显示的命令(填写了xxxx)粘贴到我打开的CMD窗口中,然后转到开始>运行> CMD。然后我通过这样做来调用另一个CMD窗口作为SYSTEM用户 psexec -i -s cmd.exe 然后粘贴我在第一个CMD窗口中执行的完全相同的命令,它将重新创建此错误。 - bill


答案:


经过大量研究后,它是一种Windows安全功能,可以阻止对系统用户的所有网络访问,包括以另一个用户身份运行任务。我发现绕过这个问题的最好方法是创建一个计划任务来从管理员帐户运行psexec。


10
2018-04-18 12:09





Psexec强制通过添加使用系统用户帐户 -s 参数。

我们使用psexec在远程计算机中启动某些任务,并在数据库表中登录。 当我们不使用-s参数时,user会显示为domain \ administrator但是如果你使用的话 -s参数显示为“System”

对于无效句柄消息,请检查:

https://superuser.com/questions/200938/psexec-the-handle-is-invalid


1
2017-12-01 20:01



感谢您的意见,但您可能会误解我的意思。如果我运行我的完整批处理文件,该行正常工作,因为我正在运行批处理文件作为用户帐户。但是,如果我尝试将程序包部署到它手动运行的同一台计算机上,则会失败,因为部署运行的批处理文件是SYSTEM用户。我不需要PSEXEC来访问远程计算机上的系统帐户,我需要它来访问管理员帐户。 - bill
您是否在psexec登录中使用相同的用户帐户?我猜你是 - Carlos Landeras
是的,例如我将上面为PSEXEC显示的命令(填写了xxxx)粘贴到我打开的CMD窗口中,然后转到开始>运行> CMD。然后我通过这样做来调用另一个CMD窗口作为SYSTEM用户 psexec -i -s cmd.exe 然后粘贴我在第一个CMD窗口中执行的完全相同的命令,它将重新创建此错误。 - bill


你尝试过使用-h标志吗?

来自technet:-h如果目标系统是Vista或更高版本,则使用帐户的提升令牌(如果可用)运行该流程。

完整页面: https://technet.microsoft.com/en-us/sysinternals/psexec.aspx


1
2017-12-29 06:07



此过程在NT Authority \ SYSTEM帐户下运行,而不是作为用户运行。所以它没有要使用的高程标记。 - bill


它可能是无关的,但实际上我发现如果连接到机器,我得到了“手柄无效”错误 - 即机器睡着了。


0
2017-10-25 19:28