1
回答
win7中,非管理员用户运行批处理程序,自动输入管理员账号密码,提示“未知用户名或密码错误”?
华为云实践训练营,热门技术免费实践!>>>   

win7中,非管理员用户运行批处理程序修改dns地址,批处理会自动输入管理员账号密码,但运行后提示“未知用户名或密码错误”,用户名和密码都是正确的,是本地管理员帐号,第一次能运行成功,之后总是提示以下错误;

在XP系统中试过,能够成功验证用户名密码,并修改成功。

以下是批处理代码:

@echo off

title setdns

pause

set admin=administrator

set adminpass=admin

(echo Set WshShell=WScript.CreateObject("WScript.Shell"^)

echo WScript.Sleep 6000

echo WshShell.AppActivate "setdns"

echo WshShell.SendKeys "%adminpass%{Enter}" )>pw.vbs

start pw.vbs

runas  /user:%admin% "netsh interface ip set dns 本地连接 static 172.16.4.10 primary"

ping -n 3 127.1>nul

del pw.vbs

ipconfig/all

echo. & pause

以下是错误提示:

 

 

<无标签>
举报
sanny_wwf
发帖于5年前 1回/2K+阅
共有1个答案 最后回答: 5年前

根据你的问题做了如下测试:

1.使用WshShell.SendKeys向记事本中写字符串,loop 100,脚本如下:

@Echo off
:清空2.txt
Echo. >2.txt

set teststr=123456

(echo Set WshShell=WScript.CreateObject("WScript.Shell"^) 

echo a=1

echo WScript.Sleep 6000 

echo do

echo if WshShell.AppActivate("2.TXT"^) Then

echo WshShell.SendKeys "%teststr%{Enter}"

echo end if

echo if a=100 Then

echo exit do

echo end if

echo a=a+1

echo loop)>pw.vbs 


start pw.vbs 

notepad 2.txt

del pw.vbs

 

结果如下:

256
1245
1346
1346
1245
2356124561345
13451234512456
1245
1245
1245
235613461346
1346
13461346
135613561346
1346
13561346
13461346
1346
1346
1346
1346
125
256
1236
1346
1346
123456
123456
......

...中间很整齐,省略...

......
123456
123456
 

2.每次发送一个key后sleep 100 ms,loop 100 ,脚本如下:

@Echo off
:清空2.txt
Echo. >2.txt

set teststr=123456

(echo Set WshShell=WScript.CreateObject("WScript.Shell"^) 

echo a=1

echo WScript.Sleep 6000 

echo do

echo if WshShell.AppActivate("2.TXT"^) Then

echo WshShell.SendKeys "%teststr:~0,1%"
echo WScript.Sleep 100
echo WshShell.SendKeys "%teststr:~1,1%"
echo WScript.Sleep 100
echo WshShell.SendKeys "%teststr:~2,1%"
echo WScript.Sleep 100
echo WshShell.SendKeys "%teststr:~3,1%"
echo WScript.Sleep 100
echo WshShell.SendKeys "%teststr:~4,1%"
echo WScript.Sleep 100
echo WshShell.SendKeys "%teststr:~5,1%"
echo WScript.Sleep 100
echo WshShell.SendKeys "{Enter}"

echo end if

echo if a=100 Then

echo exit do

echo end if

echo a=a+1

echo loop)>pw.vbs 


start pw.vbs 

notepad 2.txt

del pw.vbs

 

结果如下:

123456
123456
123456
123456
......

...中间很整齐,省略...

......
123456
123456
123456
 

结果...我也不知道..

--- 共有 1 条评论 ---
sanny_wwf感谢你的回复,现在很无奈,XP的也显示错误了 5年前 回复
顶部