Registry Provider
提供者名稱
Registry
磁碟機
HKLM:、HKCU:
簡短描述
讓 Windows PowerShell 存取系統登錄機碼和值。
詳細描述
Windows PowerShell 登錄提供者可以用來取得、新增、變更、清除和刪除 Windows PowerShell 中的登錄機碼和值。
登錄機碼會以 Microsoft.Win32.RegistryKey 類別的執行個體表示。登錄值會以 PSCustomObject 類別的執行個體表示。
登錄提供者可用來存取由登錄機碼和子機碼組成的階層命名空間。登錄值和資料不是該階層結構中的元件。而是各個機碼的屬性。
登錄提供者支援包含名詞 Item 的所有 Cmdlet (Item Cmdlet),例如 Get-Item、Copy-Item 和 Rename-Item。請在處理登錄機碼和子機碼時使用這些 Item Cmdlet。登錄提供者也支援包含名詞 ItemProperty 的 Cmdlet (ItemProperty Cmdlet)。請在處理登錄值和資料時使用這些 ItemProperty Cmdlet。您不能將包含名詞 Content 的 Cmdlet (Content Cmdlet) 與登錄提供者搭配使用。
每一個登錄機碼都會以安全性描述元保護。您可以使用 Get-Acl 來檢視機碼的安全性描述元。
功能
ShouldProcess
範例
瀏覽登錄
-------------------------- 範例 1 --------------------------
以下命令會將目前位置設定成 HKEY_LOCAL_MACHINE\Software 登錄機碼:
set-location hklm:\software
-------------------------- 範例 2 --------------------------
以下命令會顯示目前的位置:
get-location
管理登錄機碼
-------------------------- 範例 1 --------------------------
以下命令會顯示 HKEY_LOCAL_MACHINE\Software 登錄機碼之每個直接關係子機碼的相關資訊:
get-childitem -path hklm:\software
-------------------------- 範例 2 --------------------------
以下命令會在 HKCU:\Environment 子機碼底下建立 TestNew 子機碼:
new-item -path hkcu:\Environment\TestNew
-------------------------- 範例 3 --------------------------
以下命令會移除 HKEY_CURRENT_USER\Environment 機碼的 TestNew 子機碼:
remove-item -path hkcu:\Environment\TestNew
-------------------------- 範例 4 --------------------------
以下命令會將 TestNew 機碼複製到 TestCopy 子機碼:
copy-item -path hkcu:\Environment\TestNew hkcu:\Environment\TestNew\TestCopy
-------------------------- 範例 5 --------------------------
以下命令會顯示 HKEY_LOCAL_MACHINE\Software 登錄機碼之所有子機碼的相關資訊:
get-childitem -path hklm:\Software -recurse
-------------------------- 範例 6 --------------------------
以下命令會將 HKEY_CURRENT_USER\Environment\testnewcopy 登錄機碼與其屬性,以及其所有子機碼及其屬性移至 HKEY_CURRENT_USER\Environment\testnew:
move-item -path hkcu:\environment\testnewcopy `
-destination hkcu:\environment\testnew
-------------------------- 範例 7 --------------------------
以下命令會將 HKEY_CURRENT_USER\Environment\testnew 登錄機碼重新命名為 HKEY_CURRENT_USER\Environment\test:
rename-item -path hkcu:\environment\testnew\ -newname test
-------------------------- 範例 8 --------------------------
以下命令會顯示指定之登錄項目的安全性描述元:
get-acl -path hkcu:\environment\testnew | format-list -property *
管理登錄項目
-------------------------- 範例 1 --------------------------
以下命令會顯示 HKEY_CURRENT_USER\Environment 登錄機碼中每個登錄項目的值名稱和值資料:
get-itemproperty -path hkcu:\Environment
預設的登錄項目只會在其包含值的情況下傳回。
-------------------------- 範例 2 --------------------------
以下命令會顯示 HKEY_CURRENT_USER\Environment 登錄機碼中 Temp 登錄項目的值名稱和值資料:
get-itemproperty -path hkcu:\Environment -name Temp
-------------------------- 範例 3 --------------------------
以下命令會在 HKEY_CURRENT_USER 機碼中建立 pstest 登錄項目,並將其值設定為 pstestvalue:
new-itemproperty -path hkcu:\environment -name "pstest" -value "pstestvalue"
-------------------------- 範例 4 --------------------------
以下命令會將 HKEY_CURRENT_USER\Environment 機碼中 pstest 登錄項目的值更新成 updatedvalue:
set-itemproperty -path hkcu:\environment -name pstest
-value "updatedvalue"
-------------------------- 範例 5 --------------------------
以下命令會將 HKEY_CURRENT_USER\Environment 機碼中 pstest 登錄項目的值名稱重新命名成 pstestnew:
rename-itemproperty -path hkcu:\environment -name pstest `
-newname pstestnew
-------------------------- 範例 6 --------------------------
以下命令會將 HKEY_CURRENT_USER\Environment 機碼中的 pstestnew 登錄項目複製到 HKEY_CURRENT_USER\Environment\testnewcopy 機碼:
copy-itemproperty -path hkcu:\environment `
-destination hkcu:\environment\testnewcopy -name pstestnew
-------------------------- 範例 7 --------------------------
以下命令會將 HKEY_CURRENT_USER\environment\testnewcopy 機碼中的 pstestnew 登錄項目移至 HKEY_CURRENT_USER\environment\testnew 機碼:
move-itemproperty -path hkcu:\environment\testnewcopy '
-destination hkcu:\environment\testnew -name pstestnew
-------------------------- 範例 8 --------------------------
以下命令會清除 HKEY_CURRENT_USER\Environment\testnew 機碼中 pstestnew 登錄項目的值:
clear-itemproperty -path hkcu:\environment\testnew -name pstestnew
您可以使用 Clear-Item Cmdlet 為子機碼清除預設的登錄項目值。例如,以下命令會清除 HKEY_CURRENT_USER\Environment\testnew 登錄機碼之預設項目的值: clear-item -path hkcu:\environment\testnew
-------------------------- 範例 9 --------------------------
以下命令會移除 HKEY_CURRENT_USER\Environment\testnew 登錄機碼中的 pstestnew 登錄項目:
remove-itemproperty -path hkcu:\environment\testnew `
-name pstestnew
-------------------------- 範例 10 --------------------------
以下命令會將 HKEY_CURRENT_USER\Environment\testnew 機碼中預設登錄項目的值更新成 "default value":
set-itemproperty -path hkcu:\environment\testnew `
-name "(default)" -value "default value"
您也可以使用 Set-Item Cmdlet 來更新登錄機碼的預設值。例如,以下命令會更新 testnew 機碼的預設值: set-item -path hkcu:\environment\testnew -value "another default value"
動態參數
動態參數是 Cmdlet 參數,由 Windows PowerShell 提供者所新增,只有在已啟用提供者之磁碟機上的 Cmdlet 方可使用。
Type <Microsoft.Win32.RegistryValueKind>
指定在登錄中儲存值時所要使用的資料類型,或識別登錄中值的資料類型。
Value | Description |
---|---|
String |
指定 null 值結束字串。作用相當於 REG_SZ。 |
ExpandString |
指定 null 值結束字串,其中包含環境變數的未展開參考,這些參考會在擷取值時展開。作用相當於 REG_EXPAND_SZ。 |
Binary |
指定任何形式的二進位資料。作用相當於 REG_BINARY。 |
DWord |
指定 32 位元二進位數字。作用相當於 REG_DWORD。 |
MultiString |
指定以兩個 null 字元結束的 null 值結束字串陣列。作用相當於 REG_MULTI_SZ。 |
QWord |
指定 64 位元二進位數字。作用相當於 REG_QWORD。 |
不明 |
表示不支援的登錄資料類型,例如 REG_RESOURCE_LIST。 |