- 帖子
- 14935
- 积分
- 46142
- 技术
- 857
- 捐助
- 745
- 注册时间
- 2008-6-9
|
4楼
发表于 2008-8-5 09:34
| 只看该作者
转帖
用echo命令通过管道向runas命令发送密码的方法是不行的,因为runas绕过了IO控制台直接从键盘获取密码字符串,所以echo到控制台的密码被忽略,而代以空密码进行用户验证。runas的这个机制也许正是为了避免在命令行使用密码进行其他用户权限的程序调用,因为不这样做有可能为命令行实现的暴力破解程序留下可趁之机,并且避免了密码的暴露,但同时也降低了授权用户合法访问的便捷性。
方法一:使用VBS的SendKeys来输入密码
echo set pws=WScript.CreateObject("WScript.Shell")>%temp%\pws.vbs
echo pws.SendKeys "1{ENTER}">>%temp%\pws.vbs
wscript %temp%\pws.vbs&runas /u:test1 cmd.exe
方法二:使用/savecred参数
独立用户执行程序时第一次需要建立凭据,其间输入密码是不会回显的,你看不到,输了后回车即可。
以后在运行就不需要输入密码了。
runas /u:test1 cmd.exe 输入密码并回车
runas /savecred /u:test1 explorer 不用输密码了
方法三:用PsTools工具中的PsExec来替代Runas |
|