2010-05-12 159 views
10

我写了一些使用PSexe的c#代码。 我想让它在连接到我的局域网的机器上运行一个远程exe文件。Psexec“作为(远程)管理员运行”

该exe创建一个新的本地用户。 当我在远程计算机上本地运行该exe文件(右键单击 - >“以管理员身份运行”时) - 它工作正常。 我不知道如何模拟Psexec中的右键单击 - >“以管理员身份运行”。 我已经试过了-l标志,但它没有工作

回答

17

使用PSEXEC -s ​​

的s开关会导致它在其下是一样的运行升高管理员提示系统帐户下运行。只是用它来远程启用WinRM。

+8

对不起,这显然是错误的。 SYSTEM账户与您的所有权限令牌(包括管理权限)启用的用户帐户完全不同! SYSTEM帐户被允许执行*一切*(通常)。即使是本地管理员无法做到的事情。这也是一个不同的用户配置文件,因此它使用不同的设置和路径名称。 – ygoe 2013-06-26 12:26:02

19

在使用-u -p添加凭据后,只需添加-h即可,并且它将以提升的权限运行。

+0

psexec不支持参数'-h'。至少不在2009年的当前版本。 – ygoe 2013-06-26 12:28:01

+2

@LonelyPixel刚刚遇到这个...我得到的版本[这里](http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx)确实有一个'-h'参数:'如果目标系统是Vista或更高版本,则该进程运行时使用该帐户的提升令牌(如果可用)。“# – tnw 2013-09-24 14:21:23

+0

有趣。现在我也从他们那里得到一个带有“-h”的版本。必须是升级版1.98。但是如果我还没有以管理员身份称呼它,它就会失败。 (无法创建服务,拒绝访问。)那里的意义在哪里? – ygoe 2013-09-24 19:05:06