一.VBS簡介:
1.VBS代碼在本地是通過Windows Script Host(WSH)解釋執行的。VBS腳本的執行離不開WSH,WSH是微軟提供的一種基於32位Windows平臺的、與語言無關的腳本解釋機制,它使得腳本能夠直接在Windows桌面或命令提示符下運行。利用WSH,用戶能夠操縱WSH對象、ActiveX對象、註冊表和文件系統。在Windows
2000下,還可用WSH來訪問Windows NT活動目錄服務。
2. 用VBS編寫的腳本程序在窗口界面是由wscript.exe文件解釋執行的,在字符界面由cscript.exe文件解釋執行。wscript.exe是一個腳本語言解釋器,正是它使得腳本可以被執行,就象執行批處理一樣。
二.VBS腳本的實例應用:
1.註冊表解鎖:
DIM WSH
SET WSH=WSCRIPT.CreateObject("WSCRIPT.SHELL") ****'擊活WScript.Shell對象
WSH.POPUP("解鎖註冊表編輯器!") **** '顯示彈出信息“解鎖註冊表編輯器!”
WSH.Regwrite"HKCU\Software\Microsoft\Windows\CurrentVersion \Policies\System\DisableRegistryTools",0,"REG_DWORD" ****'給註冊表編輯器解鎖
WSH.POPUP("註冊表解鎖成功!") ****'顯示彈出信息“註冊表解鎖成功!” 2.關閉Win NT/2000的默認共享:
Dim WSHShell
****'定義變量
set WSHShell=CreateObject("WScript.shell") ****'創建一個能與操作系統溝通的對象WSHShell
Dim fso,dc Set fso=CreateObject("Scripting.FileSystemObject") ****'創建文件系統對象
set dc=fso.Drives ****'獲取所有驅動器盤符
For Each d in dc Dim str WSHShell.run("net share"&d.driveletter &"$ /delete") ****'關閉所有驅動器的隱藏共享
next WSHShell.run("net share admin$ /delete") WSHShell.run("net share ipc$ /delete") ****'關閉admin$和ipc$管道共享
3.顯示本機IP:
Dim dd
Set dd=CreateObject("MSWinsock.Winsock") IPAddress=WS.LocalIP MsgBox "Local IP=" & IPAddress 4.執行外部程序:
DIM objShell
set objShell=wscript.createObject("wscript.shell") iReturn=objShell.Run("cmd.exe /C set var=world", 1, TRUE) 保存爲.vbs文件即可。在這段代碼中,我們首先設置了一個環境變量,其名爲var,而值爲world,用戶可以使用%Comspec%來代替cmd.exe,並且可以把命令:set var=world改成其它的命令,這樣就可以使它可以運行任意的命令.
5.重新啓動指定的IIS服務:
Const ADS_SERVICE_STOPPED = 1
Set objComputer = GetObject("WinNT://MYCOMPUTER,computer") Set objService = objComputer.GetObject("Service","MYSERVICE") If (objService.Status = ADS_SERVICE_STOPPED) Then objService.Start End If 將它以startsvc.vbs爲名保存在C盤根目錄。並通過如下命令執行:cscript c:\startsvc.vbs。運行後,經你指定的IIS服務項將被重新開啓。
6.顯示計算機名:
Dim name
Set name=WScript.CreateObject("WScript.Shell") Dim ComputerName,RegPath RegPath="HKLM\System\CurrentControlSet\Control\ComputerName\ComputerName\ComputerName" ComputerName=name.RegRead(RegPath) MsgBox("計算機名爲"&ComputerName) 7.隱藏快捷方式上的箭頭:
Dim HiddenArrowIcon
Set HiddenArrowIcon=WScript.CreateObject("WScript.Shell") Dim RegPath1,RegPath2 RegPath1="HKCR\lnkfile\IsShortCut" RegPath2="HKCR\piffile\IsShortCut" HiddenArrowIcon.RegDelete(RegPath1) HiddenArrowIcon.RegDelete(RegPath2) 8.向Windows中添加自啓動程序
該程序能在開機時自動運行。 'AddAutoRunProgram.vbs
'假設該程序在c:\myfile文件夾中,文件名爲autorun.exe Dim rrr Set rrr=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.Write RegPath&Key_Name,Key_Data,Type_Name '在啓動組中添加自啓動程序autorun.exe MsgBox("Success!") 9.改造“開始”菜單
'ChangeStartMenu.vbs
Dim ChangeStartMenu Set ChangeStartMenu=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" Sub Change(Argument) ChangeStartMenu.RegWrite RegPath&Argument,Key_Data,Type_Name MsgBox("Success!") End Sub Call Change(StartMenu_Run) '禁用“開始”菜單中的“運行”功能 Call Change(StartMenu_Find) '禁用“開始”菜單中的“查找”功能 Call Change(StartMenu_Close) '禁用“開始”菜單中的“關閉系統”功能 三.VBS操作註冊表:
用VBScript修改註冊表,必須先創建一個能於操作系統溝通的對象,再利用該對象的各種方法對註冊表進行操作,創建這個對象的方法和格式如下:
Dim gg
Set gg=WScript.CreateObject("WScript.Shell")
對象的方法:
1.對註冊表的讀操作RegRead
2.對註冊表的寫操作RegWrite 3.對註冊表的刪操作RegDelete 參數:三種操作RegRead,RegWrite,RegDelete都需要帶參數進行,並且這些操作的參數的個數和形式又不盡相同,其必不可少的共同參數爲:
路徑參數:包括根鍵,主鍵,和鍵值.表示方法如下:
根鍵的兩種表示方法:
方法一:直接用它在註冊表中的字符串來表示,如:
HKEY_CLASSES_ROOT,HKEY_CURRENT_USER等 方法二:用縮寫的四個字母來表示,前兩個爲HK,後兩個即爲根鍵單詞的首字母。如: 根鍵HKEY_CLASSES_ROOT表示爲:HKCR, 根鍵HKEY_CURRENT_USER可表示爲:HKCU等。 主鍵路徑:
主鍵路徑就是目標鍵在註冊表中的主鍵位置,各個主鍵之間用"\"符分隔開。如:"Software\Microsoft\Windows\CurrentVersion\Policies\" 鍵 值: 鍵值參數直接接在主鍵路徑之後。例如一個完整的路徑如下所示: "HKCR\Software\Microsoft\Windows\CurrentVersion\Policies\NoRun" 方法詳解: 1、RegRead操作詳解
讀操作RegRead主要是用來讀取註冊表中主鍵的默認值或鍵值的數據,我們可以將讀得的數據送到相應的變量中,再利用VB中的MsgBox()函數將該數據顯示出來,這就達到了讀取註冊表中數據的目的(也可以利用對象OperationRegistry的方法Popup()將讀取的數據送至屏幕), 例如:
'read.vbs(將以下代碼存爲read.vbs文件) Dim OperationRegistry Set OperationRegistry=WScript.CreateObject("WScript.Shell") Dim Read_Data1,Read_Data2 Read_Data1=OperationRegistry.RegRead("HKCR\.xxf\") '讀取根鍵HKEY_CLASSES_ROOT之下的.xxf主鍵的默認值,並將該數據送至變量Read_Data1 Read_Data2=OperationRegistry.RegRead("HKCR\.xxf\value") '讀取.xxf主鍵之下的value鍵值的數據,並將該數據送至變量Read_Data2 MsgBox("Default="&Read_Data1&" value="&Read_Data2) '將讀取的數據顯示出來 2、RegWrite操作詳解
寫操作RegWrite主要是用來在註冊表中新建主鍵或鍵值,並要賦予給它們一個初始值,該操作同樣可以對註冊表中以存在的主鍵或鍵值進行數據的修改,因此寫操作的參數結構就比讀操作要複雜一些,它不僅要路徑參數,還要一個初始值和類型參數. 先來看初始值參數,該參數對於寫操作來說是必不可少的,它可以爲空(null)但卻不能省掉。在新建主鍵時,初始值參數就賦給了該主鍵的默認值,在新建鍵值時,初始值參數就成了新建鍵值的初始數據.而初始值的類型,則是由類型參數決定的.類型主要有以下三種:
'write.vbs 3、RegDelete操作詳解 刪除操作的參數形式與讀操作的參數形式幾乎完全相同,只是有一點小小的區別,那就是刪除操作不需要將操作的返回值送給某一變量,例如: 'delete.vbs 防範VBS病毒,可以選擇將WSH卸載,只要打開控制面板,找到“添加/刪除程序”,點選“Windows安裝程序”,再鼠標雙擊其中的“附件”一項,然後再在打開的窗口中將“Windows Scripting Host”一項的“√”去掉,然後連續點兩次“確定”就可以將WSH卸載。或者,你也可以點擊“我的電腦”→“查看”→“文件夾選項”,在彈出的對話框中,點擊“文件類型”,然後刪除VBS、VBE、JS、JSE文件後綴名與應用程序的映射,都可以達到防範VBS腳本病毒的目的。 |
利用VBS實現簡單的註冊表操作
2009-03-30 13:38
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.