在Powershell中使用Get-Item
和Get-ItemProperty
測試單個註冊表值是否存在並檢查它們是否存在適當的數據不會過於複雜。我希望能夠做的是檢查存在以及數據的大量註冊表值。在Powershell中測試大量的註冊表值
例如,給出以下注冊表項:
HKLM:\SOFTWARE\Breakfast\1001 = 3 [DWORD]
HKLM:\SOFTWARE\Breakfast\1003 = 3 [DWORD]
HKLM:\SOFTWARE\Breakfast\1004 = 3 [DWORD]
HKLM:\SOFTWARE\Breakfast\1005 = 1 [DWORD]
一個大的,醜陋的腳本,每個值進行測試和數據分別是並不複雜,但我很樂意看它是否是可能會將一個友好名稱,註冊表路徑/值以及所需的數據放入一個數組中,以便我們可以有一個執行我們測試的函數。
該陣列可以是這個樣子:
$registry_list = @()
$registry_list.gettype()
$registry_list += ,@('Poptarts','HKLM:\SOFTWARE\Breakfast\','1001','3')
$registry_list += ,@('Toast','HKLM:\SOFTWARE\Breakfast\','1002','3')
$registry_list += ,@('Muffins','HKLM:\SOFTWARE\Breakfast\','1003','3')
$registry_list += ,@('Bagels','HKLM:\SOFTWARE\Breakfast\','1004','3')
$registry_list += ,@('Biscuits','HKLM:\SOFTWARE\Breakfast\','1005','3')
由於我是新來的陣列,我不知道如何將這些反饋到可以輸出不同的是,僅顯示錯誤
Toast
Value Missing (HKLM:\SOFTWARE\Breakfast\1002)
Biscuits
Value Set Incorrectly (HKLM:\SOFTWARE\Breakfast\1005) Desired: 3. Actual: 1
功能
如果任何人都可以權衡以幫助弄清楚函數或類似函數如何迭代每個註冊表值,那將是值得讚賞的。這裏的例子很簡短,但我真的希望能夠通過這個測試運行數百個註冊表值。
每個數組中第一個字符串的意義是什麼? (Poptarts,Toast等) –
@ MathiasR.Jessen當他們指定數組的內容時,它們會引用友好名稱:*友好名稱,註冊表路徑/值和所需數據* – TheMadTechnician