手机
当前位置:查字典教程网 >脚本专栏 >vbs >用VBS来代替BAT或CMD文件进行命令第1/2页
用VBS来代替BAT或CMD文件进行命令第1/2页
摘要:自动导入注册表的,带检测:OnErrorResumeNextdimmsg,fso,shellSetfso=Wscript.createobj...

自动导入注册表的,带检测:

OnErrorResumeNext

dimmsg,fso,shell

Setfso=Wscript.createobject("scripting.filesystemobject")

setwshshell=wscript.CreateObject("wscript.shell")

setshell=wscript.createobject("wscript.shell")

IF(fso.FileExists("e:劲乐团reg.reg"))Then

shell.run"c:windowsRegedit.exe/se:劲乐团reg.reg"

shell.run"e:劲乐团O2Jam.exe"

Else

msg=msgbox("注册表未导入,游戏可能无法启动,如无法进游戏请叫网管~",1,"出问题啦!!")

shell.run"e:劲乐团O2Jam.exe"

endif

不带检测的:

OnErrorResumeNext

DimoShell,fso

SetoShell=WScript.CreateObject("WScript.Shell")

setfso=CreateObject("Scripting.filesystemobject")

oShell.Run"regedit/s9you.reg"

oShell.Run"d:网络游戏劲乐团O2Jam.exe"

自动加载虚拟光驱的:

DimoShell

Setoshell=WScript.CreateObject("WScript.Shell")

oShell.Run"c:progra~1daemon~1daemon.exe-mount0,D:lan战地2BF2CD1mini.mds"

wscript.sleep5000

oShell.Run"D:lan战地2BF2.exe"

另一例子:

DimWsh,DMpath,ISOpath

DMpath="X:Ydaemon.exe"'设置DM路径

ISOpath="Z:大富翁七RICH7B.mds"'设置镜像文件路径

SetWsh=WScript.CreateObject("WScript.Shell")

Wsh.runchr(34)&DMpath&chr(34)&"-mount0,"&ISOpath,0,true

Wscript.Sleep3000'最好延时几秒等待镜像加载完毕1000=1秒

Wsh.run"Z:大富翁七rich7.exe"

SetWSH=Nothing

WScript.quit

//每次开机的时候自动导入注册表和程序

OptionExplicit

DimFolder

Folder="d:aaa"'设置你要执行的文件夹

DimWsh,fso

SetWsh=WScript.CreateObject("WScript.Shell")

Setfso=CreateObject("Scripting.FileSystemObject")

Dimf,fc,f1,ext

Setf=fso.GetFolder(Folder)

Setfc=f.Files

ForEachf1infc

ext=LCase(fso.GetExtensionName(f1))

SelectCaseext

Case"exe"

wsh.runf1,,true

Case"reg"

wsh.run"Regedit/s"&f1,,true

endSelect

Next

Setfso=NoThing

SetWsh=Nothing

WScript.quit

//排除指定文件或文件夹删除多余的文件或文件夹,黑火原创

OptionExplicit

''''''''''''''说明''''''''''''

'网盟-黑火制作,送给需要的朋友。

'配置文件“Listfile.ini”的格式如下:

'要删除什么(文件|目录)=要执行删除的文件夹=排除1;排除2;排除3............

'配置文件可以有多行,以便对多个目录进行操作。

'配置文件里以“/”开头的行为注释行。

'排除多个内容时,使用分号“;”进行分隔。

'↓↓↓配置文件例子:↓↓↓

'/配置文件开始

'目录=D:=SystemVolumeInformation;网络游戏;单机游戏;小游戏

'目录=C:ProgramFiles=qq;WinRAR

'文件=D:网络游戏=文件1.exe;文件2.exe

'/配置文件结束

'''''''''''''说明完''''''''''''

DimFso,Listfile,objListfile

Listfile=""'设置配置文件路径,如果配置文件和脚本放在一起,请保持原样

IfListfile=""ThenListfile="Listfile.ini"

SetFso=CreateObject("Scripting.FileSystemObject")

OnErrorResumeNext

SetobjListfile=Fso.OpenTextFile(Listfile,1)

IfErrThen

err.Clear

Msgbox"没有找到配置文件"&Listfile,16,"错误"

WScript.quit

EndIf

OnErrorGoTo0

Dimflnum,fdnum,t1,t2,tm

flnum=0

fdnum=0

t1=timer()

DimMyline,LineArr,ListArr

DoWhileobjListfile.AtEndOfStream<>True

Myline=LCase(Replace(objListfile.ReadLine,"==","="))

IfLeft(Myline,1)="/"Then

'objListfile.SkipLine

ElseIfCheckLine(Myline)=2Then

LineArr=Split(Myline,"=")

'DoFolder=LineArr(1)

ListArr=Split(LineArr(2),";")

'MsgBoxLineArr(0)

IfLineArr(0)="目录"ThenDelFolderLineArr(1),ListArr

IfLineArr(0)="文件"ThenDelFileLineArr(1),ListArr

EndIf

Loop

t2=timer()

tm=cstr(int(((t2-t1)*10000)+0.5)/10)

MsgBox"扫描完毕,共删除"&fdnum&"个目录,"&flnum&"个文件。"&vbCrLf&"耗时"&tm&"毫秒",64,"执行完毕"

'不需要显示报告的话,注释掉上面这一行

SetFso=NoThing

WScript.quit

SubDelFolder(Folder,ListArr)

DimobjFolder,subFolders,subFolder

SetobjFolder=Fso.Getfolder(Folder)

SetsubFolders=objFolder.subFolders

ForEachsubFolderInsubFolders

IfNotInArray(LIstArr,LCase(subFolder.name))Then

OnErrorResumeNext

subfolder.Delete(True)

IfErrThen

err.Clear

Msgbox"不能删除目录,请检查"&subFolder,16,"错误"

Else

fdnum=fdnum+1

EndIf

OnErrorGoTo0

EndIf

Next

EndSub

SubDelFile(Folder,ListArr)

DimobjFolder,Files,File

SetobjFolder=Fso.Getfolder(Folder)

SetFiles=objFolder.Files

ForEachFileInFiles

IfNotInArray(LIstArr,LCase(File.name))Then

OnErrorResumeNext

File.Delete(True)

IfErrThen

err.Clear

Msgbox"不能删除文件,请检查"&File,16,"错误"

Else

flnum=flnum+1

EndIf

OnErrorGoTo0

EndIf

Next

EndSub

FunctionCheckLine(strLine)

DimLineRegExp,Matches

SetLineRegExp=NewRegExp

LineRegExp.Pattern=".=."

LineRegExp.Global=True

SetMatches=LineRegExp.Execute(strLine)

CheckLine=Matches.count

EndFunction

FunctionInArray(Myarray,StrIn)

DimStrTemp

InArray=True

ForEachStrTempInMyarray

IfStrIn=StrTempThen

ExitFunction

ExitFor

EndIf

Next

InArray=False

EndFunction

!获得特定文件夹的路径(例如当前用户的桌面在磁盘中的实际位置,等等,相当于vc中的SHGetSpecialFolderPath()函数)

SetwsShell=CreateObject("WScript.Shell")

DesktopPath=wsShell.SpecialFolders("Desktop")

!获取当前用户名称

SetWshNetwork=WScript.CreateObject("WScript.Network")

UserName=WshNetwork.UserName

!获取系统变量%SystemRoot%(当然其他的系统变量可以类推,只是不只是不是都要通过PROCESS中转一下)

Setfso=CreateObject("Scripting.FileSystemObject")

SetWshSysEnv=wsShell.Environment("PROCESS")

SystemRoot=WshSysEnv("WINDIR")

!将域用户或租添加到本地组

SetobjGroup=GetObject("WinNT://./Administrators")

SetobjUser=GetObject("WinNT://testnet/Engineers")

objGroup.Add(objUser.ADsPath)

!修改本地管理员密码

Setobjcnlar=GetObject("WinNT://./administrator,user")

objcnla.SetPassword"P@ssW0rd"

objcnla.SetInfo

!弹出YESorNO的对话框,不同的选择执行不同的代码

intAnswer=Msgbox("Doyouwanttodeletethesefiles?",vbYesNo,"DeleteFiles")

IfintAnswer=vbYesThen

Msgbox"Youansweredyes."

ElseMsgbox"Youansweredno."

EndIf

!运行CMD命令行命令

setobshell=wscript.createobject("wscript.shell")

obshell.run("ipconfig"),,true

如果要运行的命令中包含双引号,可使用&chr(34)&代替

!忽略代码错误继续执行

OnErrorResumeNext

放置于代码的最开头,当代码运行出错后并不停止跳出而是继续执行下一条。适当应用会很有效果。

!破解下载限制

DIMWSH

SETWSH=WSCRIPT.CreateObject("WSCRIPT.SHELL")

WSH.POPUP("本程序的作用是解决无法下载的问题")

WSH.POPUP("特别是在注册表禁用的情况下破解")

WSH.POPUP("由曾诚制作")

WSH.Regwrite"HKCUSoftwareMicrosoftWindowsCurrentVersionInternetSettingsZones31803",0,"REG_DWORD"

WSH.POPUP("现在您可以下载程序了!")

!读本机“计算机名”

'ReadComputerName.vbs

DimReadComputerName

SetReadComputerName=WScript.CreateObject("WScript.Shell")

DimComputerName,RegPath

RegPath="HKLMSystemCurrentControlSetControlComputerNameComputerNameComputerName"

ComputerName=ReadComputerName.RegRead(RegPath)

MsgBox("计算机名为"&ComputerName)

!隐藏快捷方式图标上的小箭头

'Hidden.vbs

DimHiddenArrowIcon

SetHiddenArrowIcon=WScript.CreateObject("WScript.Shell")

DimRegPath1,RegPath2

RegPath1="HKCRlnkfileIsShortCut"

RegPath2="HKCRpiffileIsShortCut"

HiddenArrowIcon.RegDelete(RegPath1)

HiddenArrowIcon.RegDelete(RegPath2)

!改造“开始”菜单

'ChangeStartMenu.vbs

DimChangeStartMenu

SetChangeStartMenu=WScript.CreateObject("WScript.Shell")

RegPath="HKCRSoftwareMicrosoftWindowsCurrentVersionPolicies"

Type_Name="REG_DWORD"

Key_Data=1

StartMenu_Run="NoRun"

StartMenu_Find="NoFind"

StartMenu_Close="NoClose"

SubChange(Argument)

ChangeStartMenu.RegWriteRegPath&Argument,Key_Data,Type_Name

MsgBox("Success!")

EndSub

CallChange(StartMenu_Run)'禁用“开始”菜单中的“运行”功能

CallChange(StartMenu_Find)'禁用“开始”菜单中的“查找”功能

CallChange(StartMenu_Close)'禁用“开始”菜单中的“关闭系统”功能

!向Windows中添加自启动程序

该程序能在开机时自动运行。

'AddAutoRunProgram.vbs

'假设该程序在c:myfile文件夹中,文件名为autorun.exe

DimAutoRunProgram

SetAutoRunProgram=WScript.CreateObject("WScript.Shell")

RegPath="HKLMSoftwareMicrosoftWindowsCurrentVersionRun"

Type_Name="REG_SZ"

Key_Name="AutoRun"

Key_Data="C:Myfileautorun.exe"

'该自启动程序的全路径文件名

AutoRunProgram.WriteRegPath&Key_Name,Key_Data,Type_Name

'在启动组中添加自启动程序autorun.exe

MsgBox("Success!")

一、给注册表编辑器解锁

用记事本编辑如下内容:

DIMWSH

SETWSH=WSCRIPT.CreateObject("WSCRIPT.SHELL")'击活WScript.Shell对象

WSH.POPUP("解锁注册表编辑器!")

'显示弹出信息“解锁注册表编辑器!”

WSH.Regwrite"HKCUSoftwareMicrosoftWindowsCurrentVersion

PoliciesSystemDisableRegistryTools",0,"REG_DWORD"

'给注册表编辑器解锁

WSH.POPUP("注册表解锁成功!")

'显示弹出信息“注册表解锁成功!”

保存为以.vbs为扩展名的文件,使用时双击即可。

二、关闭WinNT/2000的默认共享

用记事本编辑如下内容:

DimWSHShell'定义变量

setWSHShell=CreateObject("WScript.shell")'创建一个能与操作系统沟通的对象WSHShell

Dimfso,dc

Setfso=CreateObject("Scripting.FileSystemObject")'创建文件系统对象

setdc=fso.Drives'获取所有驱动器盘符

ForEachdindc

Dimstr

WSHShell.run("netshare"&d.driveletter&"$/delete")'关闭所有驱动器的隐藏共享

next

WSHShell.run("netshareadmin$/delete")

WSHShell.run("netshareipc$/delete")'关闭admin$和ipc$管道共享

现在来测试一下,先打开cmd.exe,输入netshare命令就可以看到自己机子上的共享。双击执行stopshare.vbs后,会看见窗口一闪而过。然后再在cmd里输入netshare命令,这时候没有发现共享列表了

三、显示本机IP地址

有许多时候,我们需要知道本机的IP地址,使用各种软件虽然可以办到,但用VBS脚本也非常的方便。用记事本编辑如下内容:

DimWS

SetWS=CreateObject("MSWinsock.Winsock")

IPAddress=WS.LocalIP

MsgBox"LocalIP="&IPAddress

将上面的内容保存为ShowIP.vbs,双击执行即可得到本机IP地址。

四、利用脚本编程删除日志

入侵系统成功后黑客做的第一件事便是清除日志,如果以图形界面远程控制对方机器或是从终端登陆进入,删除日志不是一件困难的事,由于日志虽然也是作为一种服务运行,但不同于http,ftp这样的服务,可以在命令行下先停止,再删除,在命令行下用netstopeventlog是不能停止的,所以有人认为在命令行下删除日志是很困难的,实际上不是这样,比方说利用脚本编程中的VMI就可以删除日志,而且非常的简单方便。源代码如下:

strComputer="."

SetobjWMIService=GetObject("winmgmts:"_

&"{impersonationLevel=impersonate,(Backup)}!"&_

strComputer&"rootcimv2")

dimmylogs(3)

mylogs(1)="application"

mylogs(2)="system"

mylogs(3)="security"

forEachlogsinmylogs

SetcolLogFiles=objWMIService.ExecQuery_

("Select*fromWin32_NTEventLogFilewhereLogFileName='"&logs&"'")

ForEachobjLogfileincolLogFiles

objLogFile.ClearEventLog()

Next

next

将上面的代码保存为cleanevent.vbs文件即可。在上面的代码中,首先获得object对象,然后利用其clearEventLog()方法删除日志。建立一个数组,application,security,system,如果还有其他日志也可以加入数组。然后用一个for循环,删除数组中的每一个元素,即各个日志。

五、利用脚本伪造日志

删除日志后,任何一个有头脑的管理员面对空空的日志,马上就会反应过来被入侵了,所以一个聪明的黑客的学会如何伪造日志。利用脚本编程中的eventlog方法创造日志非常简单,请看下面的代码:

setws=wscript.createobject("Wscript.shell")

ws.logevent0,"writelogsuccess"'创建一个成功执行日志

将上面的代码保存为createlog.vbs即可。这段代码很容易理解,首先获得wscript的一个shell对象,然后利用shell对象的logevent方法。logevent的用法:logeventeventtype,"description"[,remotesystem],其中eventtype为日志类型,可以使用的参数如下:0代表成功执行,1执行出错,2警告,4信息,8成功审计,16故障审计。所以上面代码中,把0改为1,2,4,8,16均可,引号中的内容为日志描述。利用这种方法写的日志有一个缺点,即只能写到应用程序日志,而且日志来源只能为WSH,即WindowsScriptingHost,所以不能起太多的隐蔽作用,在此仅供大家参考。

六、禁用开始菜单选项

用记事本编辑如下内容:

DimChangeStartMenu

SetChangeStartMenu=WScript.CreateObject("WScript.Shell")

RegPath="HKCRSoftwareMicrosoftWindowsCurrentVersionPolicies"

Type_Name="REG_DWORD"

Key_Data=1

StartMenu_Run="NoRun"

StartMenu_Find="NoFind"

StartMenu_Close="NoClose"

SubChange(Argument)

ChangeStartMenu.RegWriteRegPath&Argument,Key_Data,Type_Name

MsgBox("Success!")

EndSub

CallChange(StartMenu_Run)'禁用“开始”菜单中的“运行”功能

CallChange(StartMenu_Find)'禁用“开始”菜单中的“查找”功能

CallChange(StartMenu_Close)'禁用“开始”菜单中的“关闭系统”功能

将以上代码保存为ChangeStartMenu.vbs文件,使用时双击即可。

七、执行外部程序

用记事本编辑如下内容:

DIMobjShell

setobjShell=wscript.createObject("wscript.shell")

iReturn=objShell.Run("cmd.exe/Csetvar=world",1,TRUE)

保存为.vbs文件即可。在这段代码中,我们首先设置了一个环境变量,其名为var,而值为world,用户可以使用%Comspec%来代替cmd.exe,并且可以把命令:setvar=world改成其它的命令,这样就可以使它可以运行任意的命令。

八、重新启动指定的IIS服务

用记事本编辑如下内容:

ConstADS_SERVICE_STOPPED=1

SetobjComputer=GetObject("WinNT://MYCOMPUTER,computer")

SetobjService=objComputer.GetObject("Service","MYSERVICE")

If(objService.Status=ADS_SERVICE_STOPPED)Then

objService.Start

EndIf

//检查Search目录中的特定文件中的特定字符并将结果放入Result.txt中

SetobjNetwork=CreateObject("Wscript.Network")

strComputer=objNetwork.ComputerName

ConstForReading=1

ConstForAppending=8

DimarrFileLines()

i=0

SetobjWMIService=GetObject("winmgmts:"&"{impersonationLevel=impersonate}!"&strComputer&"

ootcimv2")

SetcolFiles=objWMIService.ExecQuery("Select*fromCIM_DataFilewherePath='search'")

ForEachobjFileincolFiles

IfobjFile.Extension="log"Then

FileName=objFile.Name

Wscript.EchoFileName

EndIF

Next

SetobjFSO=CreateObject("Scripting.FileSystemObject")

SetobjFile=objFSO.OpenTextFile("input.txt",ForReading)

InputLine=objFile.ReadLine

objFile.Close

setobjFile=objFSO.OpenTextFile(FileName,ForReading)

DoUntilobjFile.AtEndOfStream

SearchLine=objFile.ReadLine

IfInStr(SearchLine,InputLine)=0Then

Else

RedimPreservearrFileLines(i)

arrFileLines(i)=SearchLine

i=i+1

EndIf

Loop

objFile.Close

SetobjFile=objFSO.OpenTextFile("result.txt",ForAppending)

Forl=Ubound(arrFileLines)toLBound(arrFileLines)Step-1

objFile.WriteLinearrFileLines(l)

Next

objFile.Close

//在用户登陆的时候清除所有的管理员账户,只保留Administrator和NetShowServices,并修改Administrator的密码为55555555

SetobjNetwork=CreateObject("Wscript.Network")

strComputer=objNetwork.ComputerName

StrUser=objNetwork.Name

StrStat="False"

SetcolGroups=GetObject("WinNT://"&strComputer&"")

colGroups.Filter=Array("group")

ForEachobjGroupIncolGroups

ForEachobjUserinobjGroup.Members

IfobjUser.name=StrUserThen

IfobjGroup.Name="Aadministrators"Then

StrStat="True"

EndIf

EndIf

Next

Next

SetobjGroup=GetObject("WinNT://"&strComputer&"/Administrators")

ForEachobjUserinobjGroup.Members

IfobjUser.Name="Administrator"ORobjUser.Name="NetShowServices"Then

IfobjUser.Name="Administrator"ANDStrStat="True"Then

objUser.SetPassword"55555555"

EndIf

Else

objGroup.Remove(objUser.ADsPath)

EndIf

Next

//妙用脚本和批处理清除电脑中的痕迹

实现本功能使用了两个文件,VBS脚本文件reg.vbs(可以自己定义文件名);批处理文件reg.bat(可以自己定义文件名)。

1.VBS脚本文件如下:

DimWSHShell

SetWSHShell=WScript.CreateObject("WScript.Shell")

WSHShell.RegWrite"HKLMSoftwareMicrosoftWindowsCurrentVersionRunreg","reg.vbs"

WSHShell.RegWrite"HKLMSoftwareMicrosoftWindowsCurrentVersionRunOncedeldel","reg.bat"

WSHShell.RegWrite"HKCUSoftwareMicrosoftInternetExplorerMainStartPage","about:blank"

WSHShell.RegWrite"HKCUSoftwareMicrosoftInternetExplorerTypedURLs",""

WSHShell.RegDelete"HKCUSoftwareMicrosoftInternetExplorerTypedURLs"

WSHShell.RegWrite"HKCUSoftwareMicrosoftInternetExplorerTypedURLs",""

WSHShell.RegWrite"HKCUSoftware3721InputCns",""

WSHShell.RegDelete"HKCUSoftware3721InputCns"

WSHShell.RegWrite"HKCUSoftware3721InputCns",""

本脚本前二行为定义变量,请大家照着写。从第三行开始,是对注册表的处理。第三行、第四行为在注册表中添加计算机启动时自动运行的过程文件,一个是该脚本自身为reg.vbs,另一个是reg.bat批处理文件。第五行为还原IE开始页为“about:blank”;第六、七、八行为清除IE浏览器地址栏留下的曾经浏览过的网页地址名;第九、十、十一行为清除IE地址栏里的网络实名。

2.批处理文件如下:

@deltree-yc:windowstemp*.*

@deltree-yc:windows"TemporaryInternetFiles"*.*

@deltree-yc:windowsHistory*.*

@deltree-yC:WindowsRecent*.*

@deltree-yC:RECYCLED*.*

@deltree-yC:WINDOWSCookies*.*

当前1/2页12下一页阅读全文

【用VBS来代替BAT或CMD文件进行命令第1/2页】相关文章:

用于提取网易文件的hta代码

VBS合并一个文件夹里的TXT的实现代码

从XML文件中获取信息的vbs代码

用vbs对文本文件的内容进行排序

用VBSCRIPT控制ONSUBMIT事件

将HTML或txt文件转换为ASP输出的vbs代码

用vbs分割与合并文本文件的代码

用vbs读取Excel文件的函数代码

初窥WMI_Vbs脚本编程简明教程补充读物第1/2页

用vbs读取远程计算机上的文本文件的代码

精品推荐
分类导航