最近碰到这么一个问题,希望能在windows上以network service用户来运行普通程序,验证在IIS下软件的某些功能是否由于用户权限不足导致问题。我在网上找到,windwos默认自带有一个runas命令,可以以指定的用户启动程序,但是用户只能是普通的用户,对于network service这种系统内置的用户无法通过密码验证方式来让其工作。于是继续搜罗了一圈,终于在stackoverflow网站找到了一个解决办法,那就是使用psexec ,原文地址如下
(http://stackoverflow.com/questions/6911310/how-do-i-run-as-network-service)
在所有的答复里面,有高手给出了这个办法来运行cmd.exe,而且给出了psexe的官方下载地址,附带如下:
https://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
下载后将压缩包解开,把里面的exe都拷贝到c:\windows\system32下面,或者直接进入解压后目录,运行psexec,操作方式很简单,例如回复中给出的示例:
1 2 3 4 5 6 7 8 9 10 11 |
##以network service用户启动cmd.exe程序 psexec -i -u "nt authority\network service" cmd.exe ##以network service用户打开了cmd,那么你在这个cmd里面执行的所有程序,都就以network service用户来执行了 ##以本地system用户启动cmd.exe程序 psexec -i -s cmd.exe |
有了runsa和psexec,我们就能以任何一个系统内存在的用户来运行程序了,在测试某些特定环境下的功能时,是非常有用的。