獲取註冊表值的類型,並刪除/創建一個註冊表值,*不*我需要創建一個腳本,不依靠WMI,執行以下操作:VBScript中:使用WMI
- 檢查註冊表值存在,它具有所需的類型
- 如果該註冊表值存在,但一個錯誤的類型,將其刪除
- 如果註冊表值不存在,或者在第2步被刪除,用某種類型創建它
- 如果註冊表Y值存在和正確類型的,確保它的值是正確的
幾乎所有的註冊表操作的VBScript代碼段我在互聯網上依賴於WMI找到。由於某些原因,這是不可接受的。
對於如何在不依賴WMI的情況下操作註冊表,您有任何建議嗎?
獲取註冊表值的類型,並刪除/創建一個註冊表值,*不*我需要創建一個腳本,不依靠WMI,執行以下操作:VBScript中:使用WMI
幾乎所有的註冊表操作的VBScript代碼段我在互聯網上依賴於WMI找到。由於某些原因,這是不可接受的。
對於如何在不依賴WMI的情況下操作註冊表,您有任何建議嗎?
VBScript/JScript從Windows腳本主機(WSH)確實具有WScript.Shell
對象的註冊表功能,但它們僅限於讀取,寫入和刪除鍵/值。沒有函數來檢索註冊表項或值的存在,除非通過閱讀並檢查結果。用於檢索註冊表值類型的函數也不存在。
訪問註冊表的其他方法除了WMI對象外,是通過WScript.Shell.Exec
函數使用打包的REG.EXE
命令行工具。這通過使用QUERY
,ADD
,DELETE
,IMPORT
或EXPORT
命令參數來完成。運行REG.EXE
以顯示使用情況摘要或REG.EXE QUERY /?
,REG.EXE EXPORT /?
等,以顯示命令使用情況的詳細信息。
QUERY
命令的輸出將顯示值數據及其類型(如果存在)。 EXPORT
命令也可以使用,但它會將結果保存在REG
文件中。 REG.EXE
工具的結果也可以在CMD.EXE
的幫助下重定向到一個文件中。例如:
CMD.EXE /C REG.EXE QUERY "HKEY_CURRENT_USER\Control Panel\Cursors" > "reg output.txt"
注意,output.txt
的內容比REG
文件的內容有所不同。 REG
文件具有部分在Microsoft知識庫中的部分描述的標準格式KB310516。
通過檢查REG.EXE
工具的退出代碼,並解析其輸出或生成的REG
文件,可以檢索註冊表值類型。如果可能並且性能是一個問題,應該使用可以使用WScript.Shell
對象完成的註冊表操作。
解析從REG.EXE/EXPORT命令行生成的REG文件的內容。 – Jay
@Jay謝謝!如果你想寫你的評論作爲答案,我會很樂意爲你檢查... – pepoluan
發佈了更多的信息。 – Jay