windows没有类似linux的su、sudo,而最贴近的就是runas,可以用其指定用户来跑对应的程序或者命令。但是缺点就是要在交互形式下输入密码才行。而这也是runas的设计初就做的安全规则,实际上我觉得这个规则是多余的,用户自己为什么不能决定是否密码一行展示?实在不行,加个hash的配置不就行了?linux不就能一行命令,关于此,在Stack Overflow上也有很长的争议:https://stackoverflow.com/questions/16107381/how-to-complete-the-runas-command-in-one-line/16116329
话说回来,我们还是希望runas用一行命令启动,网上有比较多的方法,随便搜都是,这里推介两种:
-
用cpau,但cpau有两个限制:一个是只能执行程序或者bat文件,如果直接cpau "echo 123"则会报echo不存在,需要将"echo 123"放到bat文件里才行;另外一个是只能看到命令执行成功与否,不能看到具体的执行输出,所以要提前将输出打到日志文件里。执行命令,找到cpau的位置,比如如果处于当前位置,语句是:CPAU.exe -u xx -p xxx -ex “xxx.exe”
-
如果是以服务注册的形式,可以找到对应的服务修改,则不需要用到runas:点击任务管理器–>选择服务–>选择右下角服务–>找到对应名称–>右击属性–>选择登陆–>选择此账户–>输入账号密码登陆—>重启该服务即可