註冊表值是包含操作系統或已安裝應用程序的屬性和設置的文件。它們在啟動和登錄期間存儲應用程序的個人/全局配置。這些值有不同的格式,可以是字符串、十六進製或二進制值。
要在 PowerShell 中獲取所需的註冊表項值,用戶需要輸入稱為命令行開關 (cmdlet) 的語法。這些是.NET Framework 中內置的輕型命令,可執行特定任務或構成 Windows PowerShell 腳本的一部分。
在 Powershell 中獲取註冊表項值的方法
註冊表分為五個部分主目錄稱為配置單元。即,HKEY_LOCAL_MACHINE(HKLM) HKEY_CURRENT_CONFIG(HKCC) HKEY_CLASSES_ROOT(HKCR) HKEY_USERS(HKU) HKEY_CURRENT_USER(HKCU)
這些“配置單元”包含更多子目錄,稱為 Keys,這些子目錄也可能包含它們自己的子鍵。這些鍵是保存系統/應用程序的值和屬性的文件夾。
Test-Path
在我們學習獲取註冊表值之前,了解如何生成和測試註冊表值的路徑是有益的PowerShell 中的註冊表目錄。為此,您可以使用測試路徑命令行開關驗證路徑鍵。
如果鍵/路徑存在,此命令行開關將返回“真”值,如果路徑或鍵不存在,則返回“假”值。
打開Run 並輸入powershell 以打開PowerShell 控制台 在裡面,輸入以下語法並按Enter。用各自的條目替換
Test-Path
eg:Test-Path HKCU:\Software \Microsoft\Windows\CurrentVersion\Run 如果目錄文件夾或路徑名稱之間有空格,請將名稱放在雙引號內(“”)
Test-Path
這裡,-Path $regkey 和-Name $name are to be replaced with their respective values. Function Test-RegistryValue ($regkey, $name) { if (Get-ItemProperty-Path $regkey-Name $name-ErrorAction Ignore) { $true } else { $false } }
示例,
函數 Test-RegistryValue ($regkey, $name) { if (Get-ItemProperty-Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Run-Name Chromium-ErrorAction Ignore) { $true } else { $false } }
Reg 查詢
Reg查詢 cmdlet 返回鍵或子鍵內容的列表。此 cmdlet 顯示目錄下一級或下一層的內容。此 cmdlet 很有用,因為它顯示了指定註冊表路徑或目錄中的所有內容。
在此示例中,查詢將顯示“Run”子鍵下的註冊表項。
打開 Run 並鍵入 powershell 以打開 PowerShell 控制台 裡面, 鍵入以下命令行開關並按 Enter
Reg Query “
例如:Reg Query “HKCU\Software\Microsoft\Windows\CurrentVersion\Run”
使用 Get-Item
在 PowerShell 中獲取所需註冊表項值的方法是使用 Get-Item cmdlet。這會從用戶在 PowerShell 中指定的目錄中檢索信息。主要有兩種方法從 Get-Item cmdlet 獲取鍵值。
通過使用這些 cmdlet,用戶可以獲得所需的註冊表鍵值e 在 PowerShell 中。
Get-ItemPropertyValue
另一種檢索所需註冊表值的方法是使用 Get-ItemPropertyValue cmdlet。此cmdlet 在執行後獲取指定項的值或屬性。
獲取註冊表值的語法:
打開 PowerShell 並輸入以下命令
Get-ItemPropertyValue-Path <註冊表配置單元>:\<註冊表項路徑>
例如: Get-ItemPropertyValue-Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Run-Name Chromium 還可以設置如下parameters after entering the registry key path
輸入語法後,按回車鍵,然後按指定的註冊表項內容將顯示在 PowerShell 上。
Get-ChildItem
在 PowerShell 中獲取所需註冊表值的另一種方法是使用 Get-ChildItem cmdlet。此 cmdlet 枚舉並顯示指定目錄中所有列出的項目。但是,如果目錄為空,則該 cmdlet 不會返回任何內容。
以下語法用於從 Get-ChildItem cmdlet 檢索鍵值:
Get-ChildItem-Path
例如: Get-ChildItem-路徑 HKCU:\Software\Microsoft\Windows\CurrentVersion 要執行帶參數的 cmdlet,請按以下方式編寫它們
例如:Get-ChildItem-Path HKCU:\Software\Microsoft\Windows\CurrentVersion-名稱-排除 C*
該 cmdlet 排除了 HKCU:\Software\Microsoft\Wind 下的所有項和子項ows\CurrentVersion 以字母C開頭的路徑 您可以在輸入註冊表項路徑後設置以下附加參數
使用此 cmdlet 而不是 Get-ItemPropertyValue 可為您提供更易讀的註冊表項內容輸出。