中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 15:07
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » runas怎么样才能实现不用手工输入密码 查看 2,727 回复 5
楼 主 runas怎么样才能实现不用手工输入密码 发表于 2008-10-21 11:50 ·  中国 上海 电信
新手上路
积分 8
发帖 10
注册 2008-10-20 11:38
17年会员
UID 128828
性别 男
状态 离线
ranas怎么样才能实现不用手工输入密码
2 发表于 2008-10-21 12:19 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
用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
3 发表于 2008-10-21 14:06 ·  中国 广东 深圳 罗湖区 电信
新手上路
积分 19
发帖 13
注册 2008-10-21 13:17
17年会员
UID 128951
性别 男
状态 离线
顶一下
4 发表于 2008-10-22 09:53 ·  中国 上海 电信
新手上路
积分 8
发帖 10
注册 2008-10-20 11:38
17年会员
UID 128828
性别 男
状态 离线
按HAT的贴子中方法一:我做了一下情况如下:
1.echo set pws=WScript.CreateObject("WScript.Shell")>%temp%\pws.vbs
echo pws.SendKeys "macintosh{ENTER}">>%temp%\pws.vbs
wscript %temp%\pws.vbs&runas /u:KCCM\Administrator "d:\setup\二次开发安装.bat"
我把密码改成了我所需要的密码macintosh
我把代码复制粘贴到CMD里可以正常运行
可是当我把代码写成BAT文件运行就不对了运行起来变了样子如下:

D:\setup>echo set pws=WScript.CreateObject("WScript.Shell")1>C:\DOCUME~1\zxq\LOCALS~1\Temp\pws.vbs

D:\setup>echo pws.SendKeys "macintosh{ENTER}" 1>>C:\DOCUME~1\zxq\LOCALS~1\Temp\pws.vbs

D:\setup>wscript C:\DOCUME~1\zxq\LOCALS~1\Temp\pws.vbs & runas /u:KCCM\Administrator "d:\setup\二次开发安装.bat"
输入 KCCM\Administrator 的密码:
试图将 d:\setup\二次开发安装.bat 作为用户 "KCCM\Administrator" 启动...
RUNAS 错误: 无法运行 - d:\setup\二次开发安装.bat
1326: 登录失败: 未知的用户名或错误密码。


为什么呢,同样的代码啊
5 发表于 2008-10-22 13:19 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
RUNAS ]
/smartcard program
program EXE. 的命令行。请参阅下面的例子
你要执行批处理,要就以runas启动cmd.exe,然后把你的批处理路径当参数传递给cmd.exe

本地执行时用户写名字就可以了

其实你这样的解决方法最好使用wsh中的wshscriptexec对象,大概如下



Dim
Set wsh=CreateObject("WScript.Shell")
Set oexec=wsh.exec("cmd.exe")
oexec.StdIn.Write "runas /user:administrator install.cmd" & vbCrLf
oexec.StdIn.Write "pws" & vbCrLf

49206C6F766520796F752067757973 54656C3A3133383238343036373837
6 发表于 2009-10-13 21:35 ·  中国 福建 厦门 电信
初级用户
积分 74
发帖 37
注册 2007-06-28 11:47
19年会员
UID 92573
性别 男
状态 离线
长知识了
论坛跳转: