| 
 | 
 
常用脚本实例:(以下都使用VBScript) 
 
(主要讲解脚本宿主和脚本运行时,脚本创建com和脚本引擎的扩展先不讲,以后再讲) 
 
1 Creating and Controlling Files with FSO (Scripting.FileSystemObject) 
 
创建folder且collect 错误 
   
   
  
 ' NewFolderEC.vbs 
 ' Free example VBScript to create a folder with error-correcting Code. 
 ' Author Guy Thomas http://computerperformance.co.uk/ 
 ' Version 2.6 - May 2005 
 ' ---------------------------------------------------------------'  
  
 Option 
Explicit 
 Dim objFSO, objFolder, objShell, strDirectory 
 strDirectory = 
"c:\logs" 
  
 ' Create the File System Object 
 Set objFSO = 
CreateObject("Scripting.FileSystemObject") 
  
 ' Note If..Exists. Then, Else   End If construction 
 If objFSO.FolderExists(strDirectory) Then 
  Set objFolder = objFSO.GetFolder(strDirectory) 
  WScript.Echo strDirectory & 
" already created " 
 Else 
  Set objFolder = objFSO.CreateFolder(strDirectory) 
 WScript.Echo "Just created " 
& strDirectory 
 End 
If 
  
 If err.number = vbEmpty then 
  Set objShell = 
CreateObject("WScript.Shell") 
  objShell.run ("Explorer" 
&" 
" 
& strDirectory & 
"\" ) 
 Else WScript.echo "VBScript Error: " 
& err.number 
 End 
If 
  
 WScript.Quit 
  
 ' End of Sample VBScript to create a folder with error-correcting Code 
  
  
 
创建文件且检查文件是否已经存在 
   
   
  
 ' NewFileEC.vbs 
 ' Sample VBScript to create a file with error-correcting Code 
 ' Author Guy Thomas http://computerperformance.co.uk/ 
 ' Version 1.6 - June 2005 
 ' ---------------------------------------------------------------'  
  
 Option 
Explicit 
 Dim objFSO, objFolder, objShell, objFile 
 Dim strDirectory, strFile 
 strDirectory = 
"e:\logs" 
 strFile = 
"\Summer.txt" 
  
 ' Create the File System Object 
 Set objFSO = 
CreateObject("Scripting.FileSystemObject") 
  
 ' Check that the strDirectory folder exists 
 If objFSO.FolderExists(strDirectory) Then 
  Set objFolder = objFSO.GetFolder(strDirectory) 
 Else 
 Set objFolder = objFSO.CreateFolder(strDirectory) 
 WScript.Echo "Just created " 
& strDirectory 
 End 
If 
  
 If objFSO.FileExists(strDirectory & strFile) Then 
 Set objFolder = objFSO.GetFolder(strDirectory) 
 Else 
 Set objFile = objFSO.CreateTextFile(strDirectory & strFile) 
 Wscript.Echo "Just created " 
& strDirectory & strFile 
 End 
If  
  
 set objFolder = 
nothing 
 set objFile = 
nothing 
  
 If err.number = vbEmpty then 
 Set objShell = 
CreateObject("WScript.Shell") 
 objShell.run ("Explorer" 
& 
" 
" 
& strDirectory & 
"\" ) 
 Else WScript.echo "VBScript Error: " 
& err.number 
 End 
If 
  
 WScript.Quit 
  
 ' End of VBScript to create a file with error-correcting Code 
  
  
 
文件的末尾增加内容 
   
  
 ' NewTextEC.vbs 
 ' Sample VBScript to write to a file. With added error-correcting 
 ' Author Guy Thomas http://computerperformance.co.uk/ 
 ' Version 1.5 - August 2005 
 ' ---------------------------------------------------------------'  
  
 Option 
Explicit 
 Dim objFSO, objFolder, objShell, objTextFile, objFile 
 Dim strDirectory, strFile, strText 
 strDirectory = 
"e:\logs3" 
 strFile = 
"\Summer.txt" 
 strText = 
"Book Another Holiday" 
  
 ' Create the File System Object 
 Set objFSO = 
CreateObject("Scripting.FileSystemObject") 
  
 ' Check that the strDirectory folder exists 
 If objFSO.FolderExists(strDirectory) Then 
  Set objFolder = objFSO.GetFolder(strDirectory) 
 Else 
  Set objFolder = objFSO.CreateFolder(strDirectory) 
  WScript.Echo "Just created " 
& strDirectory 
 End 
If 
  
 If objFSO.FileExists(strDirectory & strFile) Then 
  Set objFolder = objFSO.GetFolder(strDirectory) 
 Else 
  Set objFile = objFSO.CreateTextFile(strDirectory & strFile) 
  Wscript.Echo "Just created " 
& strDirectory & strFile 
 End 
If  
  
 set objFile = 
nothing 
 set objFolder = 
nothing 
 ' OpenTextFile Method needs a Const value 
 ' ForAppending = 8 ForReading = 1, ForWriting = 2 
 Const ForAppending = 
8 
  
 Set objTextFile = objFSO.OpenTextFile _ 
 (strDirectory & strFile, ForAppending, True) 
  
 ' Writes strText every time you run this VBScript 
 objTextFile.WriteLine(strText) 
 objTextFile.Close 
  
 ' Bonus or cosmetic section to launch explorer to check file 
 If err.number = vbEmpty then 
  Set objShell = 
CreateObject("WScript.Shell") 
  objShell.run ("Explorer" 
&" 
" 
& strDirectory & 
"\" ) 
 Else WScript.echo "VBScript Error: " 
& err.number 
 End 
If 
  
 WScript.Quit 
  
 ' End of VBScript to write to a file with error-correcting Code 
  
  
 
写log data到文件 
 ' EventLogFSOvbs 
 ' Example VBScript to interogate the Event Log and create a file  
 ' Author Guy Thomas http://computerperformance.co.uk/ 
 ' Version 1.8 - June 2005 
 ' ---------------------------------------------------------'  
 Option 
Explicit 
  
 Dim objFso, objFolder, objWMI, objItem, objShell, strEventLog 
 Dim strFile, strComputer, strFolder, strFileName, strPath 
 Dim intEvent, intNumberID, intRecordNum, colLoggedEvents 
  
 ' -------------------------------------------------------- 
 ' Set the folder and file name 
 ' Set numbers 
 intNumberID = 
17 
' Event ID Number 
 intRecordNum = 
0 
  
 strComputer = 
"." 
 strFileName = 
"\Event" 
& intNumberID & 
".txt" 
 strFolder = 
"e:\logs\eventlog" 
 strPath = strFolder & strFileName 
 strEventLog = 
"'System' " 
  
 ' ----------------------------------------------------- 
 ' Section to create folder and hold file. 
 Set objFso = 
CreateObject("Scripting.FileSystemObject") 
 If objFSO.FolderExists(strFolder) Then 
 Set objFolder = objFSO.GetFolder(strFolder) 
 Else 
 Set objFolder = objFSO.CreateFolder(strFolder) 
 Wscript.Echo "Folder created " 
& strFolder 
 End 
If 
  
 Wscript.Echo " Press OK and Wait 30 seconds (ish)" 
 Set strFile = objFso.CreateTextFile(strPath, True) 
 Set objWMI = 
GetObject("winmgmts:" _ 
 & 
"{impersonationLevel=impersonate}!\\" _ 
 & strComputer & 
"\root\cimv2") 
 Set colLoggedEvents = objWMI.ExecQuery _ 
 ("Select * from Win32_NTLogEvent Where Logfile = " 
& strEventLog) 
  
 ' ----------------------------------------- 
 ' Next section loops through ID properties 
  
 For 
Each objItem in colLoggedEvents 
 If objItem.EventCode = intNumberID Then 
  
 ' Second Loop to filter only if they tried Administrator 
 strFile.WriteLine("Category: " 
& objItem.Category _ 
 & 
" string " 
& objItem.CategoryString)  
 strFile.WriteLine("ComputerName: " 
& objItem.ComputerName)  
 strFile.WriteLine("Logfile: " 
& objItem.Logfile _  
 & 
" source " 
& objItem.SourceName)  
 strFile.WriteLine("EventCode: " 
& objItem.EventCode)  
 strFile.WriteLine("EventType: " 
& objItem.EventType)  
 strFile.WriteLine("Type: " 
& objItem.Type)  
 strFile.WriteLine("User: " 
& objItem.User)  
 strFile.WriteLine("Message: " 
& objItem.Message) 
 strFile.WriteLine (" 
") 
 intRecordNum = intRecordNum +1 
 End 
If 
 Next 
  
 ' Confirms the script has completed and opens the file 
 Set objShell = 
CreateObject("WScript.Shell") 
 objShell.run ("Explorer" 
&" 
" 
& strPath & 
"\" ) 
  
 WScript.Quit 
  
 ' End of Guy's Sample FSO VBScript 
  
拷贝文件 
 
 ' VBScript. 
 Dim FSO 
 Set FSO = 
CreateObject("Scripting.FileSystemObject") 
 FSO.CopyFile "c:\COMPlusLog.txt", "c:\x\" 
拷贝文件夹 
 ' VBScript. 
 Dim FSO 
 Set FSO = 
CreateObject("Scripting.FileSystemObject") 
 FSO.CopyFolder "c:\x", "c:\y" 
 
 
2 读写注册表 
 ' VBScript. 
 Set Sh = 
CreateObject("WScript.Shell") 
 key = 
"HKEY_CURRENT_USER\" 
 Sh.RegWrite key & 
"WSHTest\", "testkeydefault" 
 Sh.RegWrite key & 
"WSHTest\string1", "testkeystring1" 
 Sh.RegWrite key & 
"WSHTest\string2", "testkeystring2", "REG_SZ" 
 Sh.RegWrite key & 
"WSHTest\string3", "testkeystring3", "REG_EXPAND_SZ" 
 Sh.RegWrite key & 
"WSHTest\int", 123, "REG_DWORD" 
 WScript.Echo Sh.RegRead(key & 
"WSHTest\") 
 WScript.Echo Sh.RegRead(key & 
"WSHTest\string1") 
 WScript.Echo Sh.RegRead(key & 
"WSHTest\string2") 
 WScript.Echo Sh.RegRead(key & 
"WSHTest\string3") 
 WScript.Echo Sh.RegRead(key & 
"WSHTest\int") 
 Sh.RegDelete key & 
"WSHTest\" 
 
3 创建快捷方式 
  VBScript. 
 Dim Shell, DesktopPath, URL 
 Set Shell = 
CreateObject("WScript.Shell") 
 DesktopPath = Shell.SpecialFolders("Desktop") 
 Set URL = Shell.CreateShortcut(DesktopPath & 
"\MSDN Scripting.URL") 
 URL.TargetPath = 
"HTTP://MSDN.Microsoft.com/scripting/" 
 URL.Save 
 
 ' VBScript. 
 Set Shell = 
CreateObject("WScript.Shell") 
 DesktopPath = Shell.SpecialFolders("Desktop") 
 Set link = Shell.CreateShortcut(DesktopPath & 
"\test.lnk") 
 link.Arguments = 
"1 2 3" 
 link.Description = 
"test shortcut" 
 link.HotKey = 
"CTRL+ALT+SHIFT+X" 
 link.IconLocation = 
"app.exe,1" 
 link.TargetPath = 
"c:\blah\app.exe" 
 link.WindowStyle = 
3 
 link.WorkingDirectory = 
"c:\blah" 
 link.Save 
 
以下主要使用WMI 
4 列举系统进程 
 ' Process.vbs 
 ' Free Sample VBScript to discover which processes are running 
 ' Author Guy Thomas http://computerperformance.co.uk/ 
 ' Version 1.4 - December 2005 
 ' -------------------------------------------------------'  
 Option 
Explicit 
 Dim objWMIService, objProcess, colProcess 
 Dim strComputer, strList 
  
 strComputer = 
"." 
  
 Set objWMIService = 
GetObject("winmgmts:" _ 
 & 
"{impersonationLevel=impersonate}!\\" _  
 & strComputer & 
"\root\cimv2")  
  
 Set colProcess = objWMIService.ExecQuery _ 
 ("Select * from Win32_Process") 
  
 For 
Each objProcess in colProcess 
 strList = strList & vbCr & _ 
 objProcess.Name 
 Next 
  
 WSCript.Echo strList 
 WScript.Quit 
  
 ' End of List Process Example VBScript 
  
  
 
看看它的结果吗: 
  
 
start stop 进程 
 ' StartProcessLocal.vbs 
 ' Free example VBScript to start a process (not interactive) 
 ' Author Guy Thomas http://computerperformance.co.uk/ 
 ' Version 1.8 - December 2005 
 ' -------------------------------------------------------'  
 Option 
Explicit 
 Dim objWMIService, objProcess, objCalc 
 Dim strShell, objProgram, strComputer, strExe  
  
 strComputer = 
"." 
 strExe = 
"Calc.exe" 
 ' Connect to WMI 
 set objWMIService = 
getobject("winmgmts://"_ 
 & strComputer & 
"/root/cimv2")  
  
 ' Obtain the Win32_Process class of object. 
 Set objProcess = objWMIService.Get("Win32_Process") 
 Set objProgram = objProcess.Methods_( _ 
 "Create").InParameters.SpawnInstance_ 
 objProgram.CommandLine = strExe  
  
 'Execute the program now at the command line. 
 Set strShell = objWMIService.ExecMethod( _ 
 "Win32_Process", "Create", objProgram)  
  
 WScript.echo "Created: " 
& strExe & 
" on " 
& strComputer 
 WSCript.Quit  
  
 ' End of free example of a Process VBScript  
  
  
 
 
 ' ProcessKillLocal.vbs 
 ' Sample VBScript to kill a program 
 ' Author Guy Thomas http://computerperformance.co.uk/ 
 ' Version 2.7 - December 2005 
 ' ------------------------ -------------------------------'  
 Option 
Explicit 
 Dim objWMIService, objProcess, colProcess 
 Dim strComputer, strProcessKill  
 strComputer = 
"." 
 strProcessKill = 
"'calc.exe'"  
  
 Set objWMIService = 
GetObject("winmgmts:" _ 
 & 
"{impersonationLevel=impersonate}!\\" _  
 & strComputer & 
"\root\cimv2")  
  
 Set colProcess = objWMIService.ExecQuery _ 
 ("Select * from Win32_Process Where Name = " 
& strProcessKill ) 
 For 
Each objProcess in colProcess 
 objProcess.Terminate() 
 Next  
 WSCript.Echo "Just killed process " 
& strProcessKill _ 
 & 
" on " 
& strComputer 
 WScript.Quit  
 ' End of WMI Example of a Kill Process  
  
 
物理和逻辑disks 
 ' LogicalDisk.vbs 
 ' Sample VBScript to interrogate a Logical disk with WMI 
 ' Author Guy Thomas http://computerperformance.co.uk/ 
 ' Version 1.8 - November 2005 
 ' -------------------------------------------------------------'  
 Option 
Explicit 
 Dim objWMIService, objItem, colItems, strComputer 
  
 On 
Error 
Resume 
Next 
 strComputer = 
"." 
  
 Set objWMIService = 
GetObject _ 
 ("winmgmts:\\" 
& strComputer & 
"\root\cimv2") 
 Set colItems = objWMIService.ExecQuery _ 
 ("Select * from Win32_LogicalDisk") 
  
 For 
Each objItem in colItems 
 Wscript.Echo "Computer: " 
& objItem.SystemName & VbCr & _  
 " ==================================" 
& VbCr & _  
 "Drive Letter: " 
& objItem.Name & vbCr & _  
 "Description: " 
& objItem.Description & vbCr & _  
 "Volume Name: " 
& objItem.VolumeName & vbCr & _  
 "Drive Type: " 
& objItem.DriveType & vbCr & _  
 "Media Type: " 
& objItem.MediaType & vbCr & _  
 "VolumeSerialNumber: " 
& objItem.VolumeSerialNumber & vbCr & _ 
 "Size: " 
& 
Int(objItem.Size /1073741824) & 
" GB" 
& vbCr & _  
 "Free Space: " 
& 
Int(objItem.FreeSpace /1073741824) & _ 
 " GB" 
& vbCr & _  
 "Quotas Disabled: " 
& objItem.QuotasDisabled & vbCr & _  
 "Supports DiskQuotas: " 
& objItem.SupportsDiskQuotas & vbCr & _ 
 "Supports FileBasedCompression: " 
& _ 
 objItem.SupportsFileBasedCompression & vbCr & _  
 "Compressed: " 
& objItem.Compressed & vbCr & _  
 ""  
 Next 
  
 WSCript.Quit 
  
 ' End of Sample DiskDrive VBScript 
  
 
 
 ' DiskDriveLogical.vbs 
 ' Sample VBScript to interrogate a physical disk with WMI 
 ' Author Guy Thomas http://computerperformance.co.uk/ 
 ' Version 2.3 - November 2005 
 ' --------------------------------------------------------------'  
 Option 
Explicit 
 Dim objWMIService, objItem, colItems, strComputer 
  
 ' On Error Resume Next 
 strComputer = 
"." 
  
 Set objWMIService = 
GetObject("winmgmts:\\" _ 
 & strComputer & 
"\root\cimv2") 
 Set colItems = objWMIService.ExecQuery(_ 
 "Select * from Win32_DiskDrive") 
  
 For 
Each objItem in colItems 
 Wscript.Echo "Computer: " 
& objItem.SystemName & VbCr & _  
 "Status: " 
& objItem.Status & VbCr & _  
 " ==================================" 
& VbCr & _  
 "Name: " 
& objItem.Name & VbCr & _  
 "Description: " 
& objItem.Description & VbCr & _  
 "Signature: " 
& objItem.Signature & VbCr & _ 
 "Manufacturer: " 
& objItem.Manufacturer & VbCr & _  
 "Model: " 
& objItem.Model & VbCr & _  
 "Size: " 
& 
Int(objItem.Size /(1073741824)) & 
" GB" 
& VbCr & _  
 "Number of Partitions: " 
& objItem.Partitions & VbCr & _  
 "Total Cylinders: " 
& objItem.TotalCylinders & VbCr & _  
 "Tracks PerCylinder: " 
& objItem.TracksPerCylinder & VbCr & _  
 "Total Heads: " 
& objItem.TotalHeads & VbCr & _  
 "Total Sectors: " 
& objItem.TotalSectors & VbCr & _  
 "Bytes PerSector: " 
& objItem.BytesPerSector & VbCr & _ 
 "Sectors PerTrack: " 
& objItem.SectorsPerTrack & VbCr & _  
 "Total Tracks: " 
& objItem.TotalTracks & VbCr & _ 
 " -------- SCSI Info ---------- "& VbCr & _ 
 "SCSI TargetId: " 
& objItem.SCSITargetId & VbCr & _ 
 "SCSI Bus: " 
& objItem.SCSIBus & VbCr & _ 
 "SCSI Logical Unit: " 
& objItem.SCSILogicalUnit & VbCr & _ 
 "SCSI Port: " 
& objItem.SCSIPort  
 Next 
 WSCript.Quit 
  
 ' End of Sample DiskDrive VBScript 
 
获得memory 
 ' Memory.vbs 
 ' Sample VBScript to discover how much RAM in computer 
 ' Author Guy Thomas http://computerperformance.co.uk/ 
 ' Version 1.3 - August 2005 
 ' -------------------------------------------------------'  
 Option 
Explicit 
 Dim objWMIService, objComputer, colComputer  
 Dim strLogonUser, strComputer  
  
 strComputer = 
"."  
  
 Set objWMIService = 
GetObject("winmgmts:" _ 
 & 
"{impersonationLevel=impersonate}!\\" _  
 & strComputer & 
"\root\cimv2")  
 Set colComputer = objWMIService.ExecQuery _ 
 ("Select * from Win32_ComputerSystem")  
  
 For 
Each objComputer in colComputer  
 Wscript.Echo "System Name: " 
& objComputer.Name _ 
 & vbCr & 
"Total RAM " 
& objComputer.TotalPhysicalMemory 
 Next  
  
 WScript.Quit  
  
 ' End of free example of Memory WMI / VBScript 
  
 
打开百度: 
 Dim objIE  
 Set objIE = WScript.CreateObject ("InternetExplorer.Application")  
 objIE.AddressBar = 
true  
 objIE.Visible = 
true  
 objIE.Navigate("www.baidu.com") 
 
删除你制定的services: 
 strComputer = 
"." 
 Set objWMIService = 
GetObject("winmgmts:" _ 
 & 
"{impersonationLevel=impersonate}!\\" 
& strComputer & 
"\root\cimv2") 
 Set colListOfServices = objWMIService.ExecQuery _ 
 ("Select * from Win32_Service Where Name = 'DbService'") 
 For 
Each objService in colListOfServices 
 objService.StopService() 
 objService.Delete() 
 Next 
 
internet 和server active directory 还有创建com等没有讲哦! 
 
 
 
主要参考: 
MS的document  
[url=http://computerperformance.co.uk/]http://computerperformance.co.uk/[/u |   
 
 
 
 |