psexec -s有什么作用?

时间:2018-02-26 05:30:05

标签: psexec

我想在远程计算机上运行一些命令。当我尝试使用以下命令中提到的psexec.exe-h参数运行某些命令时,我在我的应用程序中使用-s

C:\psexec.exe -accepteula \\IPAddress -h -u "Username" -p pwd -s netstat -bno

当我们提供有效的用户名和密码时,它使用提供的凭据,但是当我们提供无效的用户名和密码时,它会选择-s并且我已经对 -s <进行了一些研究/ strong>它说 -s =在系统帐户中运行远程进程

-s命令在使用-h-s等参数在特定远程计算机上运行上述命令时,用户名和密码优先于{-s {1}}?

1 个答案:

答案 0 :(得分:1)

使用-s,您的命令将使用系统帐户执行。 系统帐户是用于运行核心Windows服务的特殊Windows帐户(更多信息herehere);此帐户还具有特殊权限,例如访问拒绝所有其他帐户的注册表项。

正如您可以在链接的文档中看到的那样:

  

此帐户没有密码

因此,在使用系统帐户时,您无需指定密码。

这就是PsExec的工作原理:

  • 当您添加-s参数时,该命令将使用系统帐户执行,因此会忽略-u-p参数。
  • 如果您指定-h(但不是-s),则帐户和密码(-u-p)用于连接并执行帐户&#的流程39;提升的令牌(如果可用),所以它们必须是正确的
  • 如果您将-h-s一起指定,则帐户和密码(-u-p)将不会用于连接,因为该命令将与系统帐户无论如何。

您可以仔细检查此行为,在远程服务器上启动程序并查看远程计算机的任务管理器:您将看到,使用-s,程序将在系统<下运行/ strong>帐户,否则将在-u指定的用户下运行。

例如,如果使用此命令运行记事本:

psexec \\remote_server -u domain\user -p correct_password -d -i -s cmd /c notepad.exe

或使用此命令:

psexec \\remote_server -u domain\user -p correct_password -d -i -s -h cmd /c notepad.exe

或使用此命令:

psexec \\remote_server -u domain\user -p wrong_password -d -i -s -h cmd /c notepad.exe

在所有这三种情况下,记事本在系统帐户下执行:

enter image description here