問: 您好,腳本專家!如何列出注冊表中 Run 項中的所有項目? -- JW 答: 您好,JW。如何列出注冊表中 Run 項中的所有項目?坦白地講,我們不打算告訴您。真的很抱歉。不是因為我們不喜歡您,而是因為我們認為我們有一個更好的答案給您。(如果我們錯了,那好,我們只能說這不會是第一次。) 由于您對 Run 項感興趣,因此我們假定您真正想知道的是如何找出哪些程序被配置為在每次 Windows 啟動時自動運行。您一定可以從 Run 項中讀取到該信息,不要對此產生懷疑。實際上,您可以從 Run 項中讀取到該信息,查看一下是否 HKEY_CURRENT_USER 和 HKEY_LOCAL_MACHINE 中都具有 Run 項。它們中都具有 RunOnce 項。接下來是 Startup 文件夾、All Users Startup 文件夾等等。 您已經找到問題的答案了。試圖找出哪些程序被配置為在每次 Windows 啟動時自動運行的問題時所牽涉到的問題就是該信息可能存儲在數量眾多的不同位置中的任一位置中。我們可以編寫一個腳本來檢查這些為數眾多的位置中的每個位置嗎?肯定可以這樣做。但我們認為以下這段腳本更好:
復制代碼 代碼如下:
strComputer = "." Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2") Set colStartupCommands = objWMIService.ExecQuery _ ("Select * from Win32_StartupCommand") For Each objStartupCommand in colStartupCommands Wscript.Echo "Command: " & objStartupCommand.Command Wscript.Echo "Description: " & objStartupCommand.Description Wscript.Echo "Location: " & objStartupCommand.Location Wscript.Echo "Name: " & objStartupCommand.Name Wscript.Echo "User: " & objStartupCommand.User Wscript.Echo Next
不是四處查找并視圖找到 Windows 用來保存自動運行程序信息的位置,我們已決定讓 WMI 為我們完成所有此項工作。WMI 類 Win32_StartupCommand 用于查找自動運行程序的信息,而不管該信息是存儲在注冊表中、Startup 文件夾中還是其他某個位置中。例如,運行此腳本時,將返回類似于下面內容的信息: Command: Microsoft Office OneNote 2003 Quick Launch.lnk Description: Microsoft Office OneNote 2003 Quick Launch