如果从用户生成的命令提示符运行,这是可以正常工作的命令:
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的限制吗?是的,用户名和密码具有管理权限。
经过大量研究后,它是一种Windows安全功能,可以阻止对系统用户的所有网络访问,包括以另一个用户身份运行任务。我发现绕过这个问题的最好方法是创建一个计划任务来从管理员帐户运行psexec。
Psexec强制通过添加使用系统用户帐户 -s 参数。
我们使用psexec在远程计算机中启动某些任务,并在数据库表中登录。
当我们不使用-s参数时,user会显示为domain \ administrator但是如果你使用的话
-s参数显示为“System”
对于无效句柄消息,请检查:
https://superuser.com/questions/200938/psexec-the-handle-is-invalid
经过大量研究后,它是一种Windows安全功能,可以阻止对系统用户的所有网络访问,包括以另一个用户身份运行任务。我发现绕过这个问题的最好方法是创建一个计划任务来从管理员帐户运行psexec。
Psexec强制通过添加使用系统用户帐户 -s 参数。
我们使用psexec在远程计算机中启动某些任务,并在数据库表中登录。
当我们不使用-s参数时,user会显示为domain \ administrator但是如果你使用的话
-s参数显示为“System”
对于无效句柄消息,请检查:
https://superuser.com/questions/200938/psexec-the-handle-is-invalid
你尝试过使用-h标志吗?
来自technet:-h如果目标系统是Vista或更高版本,则使用帐户的提升令牌(如果可用)运行该流程。
完整页面: https://technet.microsoft.com/en-us/sysinternals/psexec.aspx
它可能是无关的,但实际上我发现如果连接到机器,我得到了“手柄无效”错误 - 即机器睡着了。