vbs 读写注册表之系统启动项添加与删除 |
本文标签:vbs读写注册表 核心vbs代码 '变量定义 Dim writeName,writeValue,fileName,regLoaction,regApp '创建注册表编辑器对象 Set regApp=WScript.CreateObject("WScript.Shell") '配置文件名 fileName="FullScan.txt" '输入键名 writeName="xiaoqiang" '输入键值 writeValue="test" '************************脚本运行区间******************************** '根据配置文件获取注册表路径数组 regLoaction=getRegPathArray(getFileText(fileName)) '写入注册表 write regLoaction,writeName,writeValue '读取写入的键值 生成并生成结果文件 read regLoaction,writeName '************************函数定义******************************** '读注册表 Function read(regLoaction,writeName) Dim returnStrArray(),j j=0 If writeName="" or writeValue="" then msgbox "错误!!请输入键名和键值" else for i=0 to ubound(regLoaction) ReDim Preserve returnStrArray(j) regPath=regLoaction(i)&""&writeName returnStrArray(j)=regPath&"? "®App.RegRead(regPath) j=j+1 Next End if writeResult returnStrArray End Function '写入注册表 Function write(regLoaction,writeName,writeValue) If writeName="" or writeValue="" then msgbox "错误!!请输入键名和键值" else for i=0 to ubound(regLoaction) regApp.RegWrite regLoaction(i)&""&writeName,writeValue Next End if End Function '输出结果文件 sub writeResult(contentArray) Const ForReading = 1, ForWriting = 2 Dim fso,f,returnStrArray(),i Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile("result.txt", 2,true) for i=0 to ubound(contentArray) f.writeline(contentArray(i)) Next f.close() End Sub '得到注册表路径数组 Function getRegPathArray(sourceArray) Dim head,returnStrArray(),j j=0 for i=0 to ubound(sourceArray) If sourceArray(i)="[HKEY_LOCAL_MACHINE]" then head="HKLM" elseif sourceArray(i)="[HKEY_USERS]" then head="HKEY_USERS.DEFAULT" elseif sourceArray(i)="[HKEY_CURRENT_USER]" then head="HKCU" elseif sourceArray(i)="[HKEY_CLASSES_ROOT]" then head="HKCR" elseif sourceArray(i)="[HKEY_CURRENT_CONFIG]" then head="HKEY_CURRENT_CONFIG" else ReDim Preserve returnStrArray(j) str=head&split(sourceArray(i),"=")(1) returnStrArray(j)=str j=j+1 End If Next getRegPathArray=returnStrArray End Function '得到文件内容存入数组 Function getFileText(fileName) Const ForReading = 1, ForWriting = 2 Dim fso,f,returnStrArray(),i Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile(fileName, 1) i=0 do while f.atendofstream<>true ReDim Preserve returnStrArray(i) returnStrArray(i)=f.readline() i=i+1 loop f.close() getFileText=returnStrArray End Function //配置文件 FullScan.txt [HKEY_LOCAL_MACHINE] 1=SoftwareMicrosoftWindowsCurrentVersionRun 2=SoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerRun 3=SoftwareMicrosoftWindowsCurrentVersionRunOnce 4=SoftwareMicrosoftWindowsCurrentVersionRunServicesOnce 5=SoftwareMicrosoftWindowsCurrentVersionRunOnceEx 6=SoftwareMicrosoftWindowsCurrentVersionPoliciesSystemShell 7=SoftwareMicrosoftWindowsCurrentVersionShellServiceObjectDelayLoad 8=SoftwarePoliciesMicrosoftWindowsSystemScripts [HKEY_CURRENT_USER] 1=SoftwareMicrosoftWindowsCurrentVersionRun 2=SoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerRun 3=SoftwareMicrosoftWindowsCurrentVersionRunOnce 4=SoftwareMicrosoftWindowsCurrentVersionRunServicesOnce 5=SoftwareMicrosoftWindowsCurrentVersionRunOnceEx 6=SoftwareMicrosoftWindowsCurrentVersionPoliciesSystemShell 7=SoftwareMicrosoftWindowsCurrentVersionShellServiceObjectDelayLoad 8=SoftwarePoliciesMicrosoftWindowsSystemScripts 运行后得到result.txt HKLMSoftwareMicrosoftWindowsCurrentVersionRunxiaoqiang? test HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerRun\xiaoqiang? test HKLMSoftwareMicrosoftWindowsCurrentVersionRunOnce\xiaoqiang? test HKLMSoftwareMicrosoftWindowsCurrentVersionRunServicesOnce\xiaoqiang? test HKLMSoftwareMicrosoftWindowsCurrentVersionRunOnceExxiaoqiang? test HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemShell\xiaoqiang? test HKLMSoftwareMicrosoftWindowsCurrentVersionShellServiceObjectDelayLoad\xiaoqiang? test HKLMSoftwarePoliciesMicrosoftWindowsSystemScripts\xiaoqiang? test HKCUSoftwareMicrosoftWindowsCurrentVersionRunxiaoqiang? test HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerRun\xiaoqiang? test HKCUSoftwareMicrosoftWindowsCurrentVersionRunOnce\xiaoqiang? test HKCUSoftwareMicrosoftWindowsCurrentVersionRunServicesOnce\xiaoqiang? test HKCUSoftwareMicrosoftWindowsCurrentVersionRunOnceExxiaoqiang? test HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemShell\xiaoqiang? test HKCUSoftwareMicrosoftWindowsCurrentVersionShellServiceObjectDelayLoad\xiaoqiang? test HKCUSoftwarePoliciesMicrosoftWindowsSystemScripts\xiaoqiang? test 注册表中的值 以下是脚本之家小编补充 运行后就会发现在系统开始自动运行的一些启动项加入了如上值,所以不建议普通用户运行 。 既然批量添加那么也可以批量删除 将上面的vbs代码中的
替换为
发现直接运行不行,其实注册表的删除需要用管理员权限才可以 。 怕有些新手不知道如何管理员权限运行vbs 其实右键cmd中看到 以管理员权限运行 打开 dos窗口,然后将vbs文件拖到这个dos窗口里面,回车运行即可 然后拖拉 回车后发现,并没有提示任何错误信息,从注册表中看到,确定这个字段已经没了 。完全解决 。 |