国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > VBScript > 正文

vbs腳本大全,配有實例 DOS命令,批處理 腳本 代碼

2020-06-26 18:07:43
字體:
來源:轉載
供稿:網友
 VBS  
 取得本機IP 
strComputer = "."  
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2") 
Set IPConfigSet = objWMIService.ExecQuery("Select IPAddress from 
Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE") 
For Each IPConfig in IPConfigSet  
If Not IsNull(IPConfig.IPAddress) Then  
For Each strAddress in IPConfig.IPAddress  
WScript.Echo strAddress  
Next  
End If  
Next   
2 取得本機計算機名  
 strComputer = "."  
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")  
Set colComputers = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")  
For Each objComputer in colComputers  
Wscript.Echo objComputer.Name 
Next  
4 檢查升級包  
 strComputer = "."  
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")  
Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")  
For Each objOperatingSystem in colOperatingSystems  
Wscript.Echo objOperatingSystem.ServicePackMajorVersion & "." & 
objOperatingSystem.ServicePackMinorVersion 
Next  
5 檢查 Hot Fix  
 strComputer = "."  
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")  
Set colQuickFixes = objWMIService.ExecQuery ("Select * from Win32_QuickFixEngineering")  
For Each objQuickFix in colQuickFixes  
Wscript.Echo "Description: " & objQuickFix.Description  
Wscript.Echo "Hot Fix ID: " & objQuickFix.HotFixID  
Next  
6 檢查本地管理員數目  
 Set objNetwork = CreateObject("Wscript.Network")  
strComputer = objNetwork.ComputerName  
Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators,group")  
For Each objUser in objGroup.Members  
Wscript.Echo objUser.Name  
Next  
7 磁盤系統(tǒng)  
 strComputer = "."  
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")  
Set colDisks = objWMIService.ExecQuery("Select * from Win32_LogicalDisk Where DriveType = 
3")  
For Each objDisk in colDisks  
Wscript.Echo "Disk drive: "& objDisk.DeviceID & " -- " & objDisk.FileSystem  
Next  
8 檢測自動登錄是否開啟  
 Const HKEY_LOCAL_MACHINE = &H80000002  
strComputer = "."  
Set objReg=GetObject("winmgmts://" & strComputer & "/root/default:StdRegProv")  
strKeyPath = "Software/Microsoft/Windows NT/CurrentVersion/WinLogon"  
strValueName = "AutoAdminLogon"  
objReg.GetDWORDValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName,dwValue  
If dwValue = 1 Then  
Wscript.Echo "Auto logon is enabled."  
Else  
Wscript.Echo "Auto logon is disabled."  
End If 
9 關閉自動登錄  
 Const HKEY_LOCAL_MACHINE = &H80000002  
strComputer = "."  
Set objReg=GetObject("winmgmts://" & strComputer & "/root/default:StdRegProv")  
strKeyPath = "Software/Microsoft/Windows NT/CurrentVersion/WinLogon"  
strValueName = "AutoAdminLogon"  
dwValue = 0  
oReg.SetDWORDValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, dwValue  
10 檢查Guest是否禁用  
 Set objNetwork = CreateObject("Wscript.Network")  
strComputer = objNetwork.ComputerName  
Set objUser = GetObject("WinNT://" & strComputer & "/Guest")  
If objUser.AccountDisabled Then  
Wscript.Echo "The Guest account is disabled."  
Else  
Wscript.Echo "The Guest account is enabled."  
End If  
11 關閉Guest  
 Set objNetwork = CreateObject("Wscript.Network")  
strComputer = objNetwork.ComputerName  
Set objUser = GetObject("WinNT://" & strComputer & "/Guest")  
If objUser.AccountDisabled Then  
Wscript.Echo "The Guest account is already disabled."  
Else  
objUser.AccountDisabled = True  
objUser.SetInfo  
Wscript.Echo "The Guest account has been disabled."  
End If  
12 檢索本地共象  
 strComputer = "."  
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")  
Set colShares = objWMIService.ExecQuery("Select * from Win32_Share")  
For each objShare in colShares  
Wscript.Echo "Name: " & objShare.Name  
Wscript.Echo "Path: " & objShare.Path  
Wscript.Echo "Type: " & objShare.Type  
Next  
13 腳本檢索一個文件夾下.txt文件 汗哦 值得學習  
 Set objWMIService = GetObject("winmgmts://./root/cimv2") 
Set colFiles = objWMIService.ExecQuery("SELECT * FROM CIM_DataFile WHERE Path = '//Documents 
and Settings//Administrator//桌面//' AND Drive = 'E:' AND Extension = 'txt'") 
Wscript.Echo "Number of .txt files found: " & colFiles.Count  
for each aa in colFiles 
NL=NL & vbcrlf & aa.name 
next 
Wscript.Echo NL  
14 我如何向用戶顯示一個用來選擇文件的對話框?  
 問: 
嗨,Scripting Guy!有沒有什么方法可以讓我使用腳本向用戶顯示一個對話框,供用戶選擇文件使用? 
-- BF 
答: 
您好,BF。如果您使用的是 Windows 2000,我們不知道實現此操作的方法,至少操作系統(tǒng)中沒有內置這
樣的方法。但如果您使用的是 Windows XP,情況就不同了。在 Windows XP 上,您可以使用
“UserAccounts.CommonDialog”對象向用戶顯示一個標準的“文件打開”對話框。可以用類似以下代碼
的腳本: 
Set objDialog = CreateObject("UserAccounts.CommonDialog") 
objDialog.Filter = "All Files|*.*" objDialog.InitialDir = "C:/" intResult = 
objDialog.ShowOpen 
If intResult = 0 Then Wscript.Quit Else Wscript.Echo objDialog.FileName End If  
這是一個小腳本,所以讓我們逐行進行解釋吧。我們首先創(chuàng)建一個對 UserAccounts.CommonDialog 對象
的對象引用(名為“objDialog”)。接著,我們設置對話框的“篩選”屬性。我們要顯示所有文件,所
以我們將篩選設置成這樣: 
objDialog.Filter = "All Files|*.*"  
假如我們只想顯示文本文件,那該怎么辦?在這種情況下,我們將使用以下篩選: 
objDialog.Filter = "Text Files|*.txt"  
您也許能夠看出它是如何運行的:我們?yōu)槲募愋吞峁┱f明 (Text Files),然后插入一個豎線分隔符 
(|),最后使用標準的通配符來指示所有 .txt 文件 (*.txt)。是不是想默認顯示 .txt 文件,然后為用
戶提供查看所有文件的選項?那么可以使用以下代碼: 
objDialog.Filter = "Text Files|*.txt|All Files|*.*"  
試一試,您就明白我們的意思了。 
然后,我們指定默認文件夾。默認情況下,我們希望對話框顯示位于驅動器 C 的根文件夾中的文件,所
以我們這樣設置“InitialDir”屬性: 
objDialog.InitialDir = "C:/"  
希望顯示 C:/Windows 文件夾中的文件嗎?那么可以使用以下代碼: 
objDialog.InitialDir = "C:/Windows"  
不必擔心:這是一個真正的“文件打開”對話框,所以您可以隨意單擊,并且可以隨時停下來。您從 
C:/Windows 開始并不意味著您只能打開該文件夾中的文件。 
最后,我們使用下面這行代碼顯示對話框: 
intResult = objDialog.ShowOpen  
現在,我們只需坐下來,等待用戶選擇文件并單擊“確定”(或者等待用戶單擊“取消”)。如果用戶單
擊“取消”,則變量 intResult 將被設置為 0。在我們的腳本中,我們檢查 intResult 的值,如果是 0
,我們將只需要使用 Wscript.Quit 來終止此腳本。 
但是如果用戶實際上選擇了文件并單擊了“確定”,那該怎么辦?在這種情況下,intResult 將被設置為 
-1,“FileDialog”屬性將被設置為所選文件的路徑名。我們的腳本只回顯路徑名,這意味著我們將得到
類似以下內容的輸出: 
C:/WINDOWS/Prairie Wind.bmp  
不用說,您并不局限于只回顯文件路徑。實際上,您可以使用 WMI、FileSystemObject 或一些其他技術
來綁定該文件,然后對其執(zhí)行刪除、復制、壓縮或檢索文件屬性等操作 — 您對文件能夠執(zhí)行的操作差不
多都可以對它執(zhí)行。 
但無論如何,您都需要使用腳本。 
順便說一句,使用此方法,您一次只能選擇一個文件,而不能按住“Ctrl”鍵選擇多個文件。有一種方法
可以選擇多個文件,至少在 XP 計算機上可以,但是我們只能將此問題留到以后的專欄中討論了。  
15 我如何確定進程是在哪個帳戶下運行的?  
 問: 
嗨,Scripting Guy!我有一個腳本,它返回關于計算機上運行的所有進程的信息,只是我不知道如何獲
得這些進程在其下運行的用戶帳戶的名稱。您可以幫助我嗎? 
-- DL 
答: 
您好,DL。是的,我們可以幫助您。確定進程是在哪個帳戶下運行的,實際上相當簡單,只是如何著手執(zhí)
行此操作并不是特別顯而易見的。如果您與大多數人一樣,那么您可能會通過掃描 Win32_Process 類的
屬性來查找名為 Account 或 UserName 或類似的屬性。您很有可能找不到。出現這種情況的原因是:
Win32_Process 沒有可以告訴您進程在哪個帳戶下運行的屬性。 
您需要使用“GetOwner”方法來捕捉此信息。下面這個腳本可以告訴您 Microsoft Word (Winword.exe) 
在哪個帳戶下運行: 
strComputer = "."Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2") 
Set colProcessList = objWMIService.ExecQuery _ ("Select * from Win32_Process Where Name = 
'Winword.exe'") 
For Each objProcess in colProcessList objProcess.GetOwner strUserName, strUserDomain 
Wscript.Echo "Process " & objProcess.Name & " is owned by " _ & strUserDomain & "/" & 
strUserName & "."Next  
我們最感興趣的是下面這行代碼: 
objProcess.GetOwner strNameOfUser, strUserDomain  
我們在此所做的就是調用“GetOwner”方法。GetOwner 返回兩個“輸出參數”,一個返回負責該進程的
用戶的名稱,一個返回該用戶所屬的域。為捕獲這兩個輸出參數,我們需要為 GetOwner 方法提供兩個變
量。在這個示例腳本中,我們使用了兩個分別叫做 strUserName 和 strUserDomain 的變量。名稱可以隨
意選擇;您可以將變量稱為 A 和 B 或 X 和 Y 或任何其他您想要的名稱。 
不過,變量的順序不能隨意設置:返回的第一個值總是用戶名,第二個值總是域。這意味著,如果您希望
用 X 表示用戶名,用 Y 表示域,那么您要確保您的代碼像下面這行代碼一樣: 
objProcess.GetOwner X, Y  
調用 GetOwner 之后,我們就可直接回顯進程名和所有者。請注意,我們可以稍微來點兒花樣兒 – 使用
域/用戶格式。這樣,我們就可以回顯類似于“fabrikam/kenmyer”的名稱。 
下面附帶提供了另一個腳本,該腳本可以列出計算機上的所有進程以及各個進程的所有者: 
strComputer = "."Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2") 
Set colProcessList = objWMIService.ExecQuery _ ("Select * from Win32_Process") 
For Each objProcess in colProcessList objProcess.GetOwner strUserName, strUserDomain 
Wscript.Echo "Process " & objProcess.Name & " is owned by " _ & strUserDomain & "/" & 
strUserName & "."Next  
可能有人感到奇怪,2005 年 1 月 3 日正好是 Microsoft 員工的正式休息日。那么今天為什么會有“嗨
,Scripting Guy!”專欄?這只能是由于 Microsoft 腳本專家表現出來的對工作的難以置信的奉獻和投
入精神。或者,也可能是由于某個腳本專家 – 還說不出他或她的名字 – 沒有意識到今天是假日,所以
照常來了(而且是在早上 7 點啊!)。  
16 可以將腳本的輸出復制到剪貼板嗎?  
 問: 
嗨,Scripting Guy!有辦法將腳本輸出復制到剪貼板嗎? 
-- ZW, Marseilles, France 
答: 
您好,ZW.如果您不介意用一些瘋狂的解決方法,那么實際上將腳本輸出復制到剪貼板相當容易。首先,
您需要構造一個字符串,其中包含想要的輸出。然后,創(chuàng)建 Internet Explorer 的一個實例,然后在其
中打開一個空白頁。接著,利用 Internet Explorer 對象模型的內置功能,將字符串復制到剪貼板;特
別是, 可以使用 clipboardData.SetData 方法來實現這個技巧。將某些數據復制到剪貼板的示例腳本如
下: 
strCopy = "This text has been copied to the clipboard." 
Set objIE = CreateObject("InternetExplorer.Application") 
objIE.Navigate("about:blank") 
objIE.document.parentwindow.clipboardData.SetData "text", strCopy 
objIE.Quit 
運行腳本,然后打開 Notepad,然后單擊“粘貼”;應該可以看到所復制的字符串。 
順便說一下,所有這一切都是在“幕后”發(fā)生的,Internet Explorer 并不會真的出現在屏幕上。這是因
為,在默認情況下,通過腳本創(chuàng)建的任何 IE 實例在運行時都是隱藏的,除非您利用如下語句將其顯示出
來:
objIE.Visible = True
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 桦甸市| 巫山县| 汉川市| 河北区| 日土县| 开江县| 封开县| 松江区| 筠连县| 香河县| 依安县| 庆元县| 汉源县| 屏山县| 平原县| 东山县| 合山市| 英超| 弥渡县| 山东省| 通道| 招远市| 通江县| 兰坪| 潍坊市| 杂多县| 兴国县| 左权县| 兴和县| 信宜市| 沧州市| 高碑店市| 成安县| 龙陵县| 江达县| 呼伦贝尔市| 三门峡市| 张家港市| 合江县| 台中市| 林甸县|