作为另一个用户执行Windows SC命令

我想作为一个不同的用户对networking目标执行SC命令。 我需要能够在命令行上指定用户名和密码,因为这是为了编写脚本的目的。 但是,我没有看到SC上用于执行另一个用户的命令的选项。 我看到接受用户名的“obj”选项,但似乎是设置服务本身应该运行的用户帐户。

如果没有办法改变执行的用户上下文,是否有另外一个命令允许我以脚本化的方式创build/启动/停止Windows服务(从TeamCity调用)

使用“RunAs”命令行工具 ,它可以让你提供一个明确的凭据集,同时支持“Domain \ Username”和UPN格式,允许你作为另一个用户进行身份validation并运行你的命令:

Runas /user:Domain\user "sc \\remoteServer stop serviceKeyName" 

替代scheme:

使用特定的login帐户设置计划任务

完成安装和使用PsExec – http://technet.microsoft.com/en-us/sysinternals/bb897553 。 允许内联指定用户名/密码,这样可以编写脚本。

在PowerShell中:

 (get-wmiobject win32_service -comp servername -cred domain\user -filter "name='browser'").stopservice() 

-cred也会popup一个凭证对话框

用适当的值replaceservernamedomain\username=

使用-cred你甚至可以使用存储的凭据。