用VBS来代替BAT或CMD文件进行命令第1/2页

编程入门 行业动态 更新时间:2024-10-28 20:24:50
自动导入注册表的,带检测: 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:\windows\Regedit.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~1\daemon~1\daemon.exe-mount0,D:\lan\战地2\BF2CD1mini.mds" wscript.sleep5000 oShell.Run"D:\lan\战地2\BF2.exe" 另一例子: DimWsh,DMpath,ISOpath DMpath="X:\Y\daemon.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"HKCU\Software\Microsoft\Windows\CurrentVersion\InternetSettings\Zones\3\1803",0,"REG_DWORD" WSH.POPUP("现在您可以下载程序了!") !读本机“计算机名” 'ReadComputerName.vbs DimReadComputerName SetReadComputerName=WScript.CreateObject("WScript.Shell") DimComputerName,RegPath RegPath="HKLM\System\CurrentControlSet\Control\ComputerName\ComputerName\ComputerName" ComputerName=ReadComputerName.RegRead(RegPath) MsgBox("计算机名为"&ComputerName) !隐藏快捷方式图标上的小箭头 'Hidden.vbs DimHiddenArrowIcon SetHiddenArrowIcon=WScript.CreateObject("WScript.Shell") DimRegPath1,RegPath2 RegPath1="HKCR\lnkfile\IsShortCut" RegPath2="HKCR\piffile\IsShortCut" HiddenArrowIcon.RegDelete(RegPath1) HiddenArrowIcon.RegDelete(RegPath2) !改造“开始”菜单 'ChangeStartMenu.vbs DimChangeStartMenu SetChangeStartMenu=WScript.CreateObject("WScript.Shell") RegPath="HKCR\Software\Microsoft\Windows\CurrentVersion\Policies" 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="HKLM\Software\Microsoft\Windows\CurrentVersion\Run" Type_Name="REG_SZ" Key_Name="AutoRun" Key_Data="C:\Myfile\autorun.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"HKCU\Software\Microsoft\Windows\CurrentVersion \Policies\System\DisableRegistryTools",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&"\root\cimv2") 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="HKCR\Software\Microsoft\Windows\CurrentVersion\Policies" 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"HKLM\Software\Microsoft\Windows\CurrentVersion\Run\reg","reg.vbs" WSHShell.RegWrite"HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce\deldel","reg.bat" WSHShell.RegWrite"HKCU\Software\Microsoft\InternetExplorer\Main\StartPage","about:blank" WSHShell.RegWrite"HKCU\Software\Microsoft\InternetExplorer\TypedURLs","" WSHShell.RegDelete"HKCU\Software\Microsoft\InternetExplorer\TypedURLs" WSHShell.RegWrite"HKCU\Software\Microsoft\InternetExplorer\TypedURLs","" WSHShell.RegWrite"HKCU\Software\3721\InputCns","" WSHShell.RegDelete"HKCU\Software\3721\InputCns" WSHShell.RegWrite"HKCU\Software\3721\InputCns",""   本脚本前二行为定义变量,请大家照着写。从第三行开始,是对注册表的处理。第三行、第四行为在注册表中添加计算机启动时自动运行的过程文件,一个是该脚本自身为reg.vbs,另一个是reg.bat批处理文件。第五行为还原IE开始页为“about:blank”;第六、七、八行为清除IE浏览器地址栏留下的曾经浏览过的网页地址名;第九、十、十一行为清除IE地址栏里的网络实名。 2.批处理文件如下: @deltree-yc:\windows\temp\*.* @deltree-yc:\windows"TemporaryInternetFiles"\*.* @deltree-yc:\windows\History\*.* @deltree-yC:\Windows\Recent\*.* @deltree-yC:\RECYCLED\*.* @deltree-yC:\WINDOWS\Cookies\*.* 12下一页阅读全文
  • 0
  • 0
  • 0
  • 0
  • 0

更多推荐

用VBS来代替BAT或CMD文件进行命令第1/2页

本文发布于:2023-06-11 03:37:44,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/625871.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:命令   文件   来代替   VBS   CMD

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!