Registry Provider

Registry Provider【Registry Provider】提供从Windows PowerShell对系统注册表项和注册表值的访问 。
基本介绍中文名:注册表提供
外文名:Registry Provider
驱动器:HKLM:, HKCU:
功能:ShouldProcess
简短说明提供从 Windows PowerShell 对系统注册表项和注册表值的访问 。驱动器HKLM:, HKCU:详细说明使用 Windows PowerShell Registry 提供程式,您可以获取、添加、更改、清除和删除 Windows PowerShell 中的注册表项和注册表值 。注册表项表示为 Microsoft.Win32.RegistryKey 类的实例 。注册表值表示为 PSCustomObject 类的实例 。使用 Registry 提供程式,您可以访问由注册表项和子项组成的分层命名空间 。注册表值和数据不是该层次结构中的组件 。实际上,它们是每个注册表项的属性 。Registry 提供程式支持包含 Item 名词的所有 cmdlet (Item cmdlet),例如 Get-Item、Copy-Item 和 Rename Item 。在处理注册表项和子项时使用 Item cmdlet 。Registry 提供程式还支持包含 ItemProperty 名词的 cmdlet (ItemProperty cmdlet) 。在处理注册表值和数据时使用 ItemProperty cmdlet 。不能将包含 Content 名词的 cmdlet (Content cmdlet) 与 Registry 提供程式一起使用 。每个注册表项均由一个安全描述符进行保护 。您可以使用 Get-Acl 来查看注册表项的安全描述符 。功能ShouldProcess示例在注册表中导航-------------------------- 示例 1 --------------------------此命令将当前位置设定为 HKEY_LOCAL_MACHINE\Software 注册表项:set-location hklm:\software-------------------------- 示例 2 --------------------------此命令显示当前位置:get-location管理注册表项-------------------------- 示例 1 --------------------------此命令显示有关 HKEY_LOCAL_MACHINE\Software 注册表项的每个直接子项的信息:此命令显示 HKEY_CURRENT_USER\Environment 注册表项中的每个注册表条目的值名称和值数据:get-childitem -path hklm:\software只有当 Default 注册表条目具有注册表值时,才会返回该项 。-------------------------- 示例 2 --------------------------此命令在 HKCU:\Environment 子项下创建 TestNew 子项:此命令显示 HKEY_CURRENT_USER\Environment 注册表项中的 Temp 注册表条目的值名称和值数据:new-item -path hkcu:\Environment\TestNew-------------------------- 示例 3 --------------------------此命令删除 HKEY_CURRENT_USER\Environment 注册表项的 TestNew 子项:此命令在 HKEY_CURRENT_USER 项中创建注册表条目 pstest,并将它的值设定为 pstestvalue:remove-item -path hkcu:\Environment\TestNew-------------------------- 示例 4 --------------------------此命令将 TestNew 项複製到 TestCopy 子项:此命令将 HKEY_CURRENT_USER\Environment 项中的注册表条目 pstest 的值更新为 updatedvalue:copy-item -path hkcu:\Environment\TestNew hkcu:\Environment\TestNew\TestCopy-------------------------- 示例 5 --------------------------此命令显示有关 HKEY_LOCAL_MACHINE\Software 注册表项的所有子项的信息:此命令将 HKEY_CURRENT_USER\Environment 项中的注册表条目 pstest 的值名称重命名为 pstestnew:get-childitem -path hklm:\Software -recurse-------------------------- 示例 6 --------------------------此命令将 HKEY_CURRENT_USER\Environment\testnewcopy 注册表项及其属性以及它的所有子项及其属性一起移动到 HKEY_CURRENT_USER\Environment\testnew:此命令将 HKEY_CURRENT_USER\Environment 项中的注册表条目 pstestnew 複製到 HKEY_CURRENT_USER\Environment\testnewcopy 项:move-item -path hkcu:\environment\testnewcopy `-destination hkcu:\environment\testnew-------------------------- 示例 7 --------------------------此命令将 HKEY_CURRENT_USER\Environment\testnew 注册表项重命名为 HKEY_CURRENT_USER\Environment\test:此命令将 HKEY_CURRENT_USER\environment\testnewcopy 项中的注册表条目 pstestnew 複製到 HKEY_CURRENT_USER\environment\testnew 项: rename-item -path hkcu:\environment\testnew\ -newname test-------------------------- 示例 8 --------------------------此命令显示指定注册表项的安全描述符:此命令清除 HKEY_CURRENT_USER\Environment\testnew 项中的注册表条目 pstestnew 的值:get-acl -path hkcu:\environment\testnew | format-list -property *您可以使用 Clear-Item cmdlet 来清除子项的默认注册表条目的值 。例如,以下命令清除 HKEY_CURRENT_USER\Environment\testnew 注册表项的默认条目的值: clear-item -path hkcu:\environment\testnew-------------------------- 示例 1 --------------------------此命令显示有关 HKEY_LOCAL_MACHINE\Software 注册表项的每个直接子项的信息:此命令显示 HKEY_CURRENT_USER\Environment 注册表项中的每个注册表条目的值名称和值数据:get-childitem -path hklm:\software只有当 Default 注册表条目具有注册表值时,才会返回该项 。-------------------------- 示例 2 --------------------------此命令在 HKCU:\Environment 子项下创建 TestNew 子项:此命令显示 HKEY_CURRENT_USER\Environment 注册表项中的 Temp 注册表条目的值名称和值数据:new-item -path hkcu:\Environment\TestNew-------------------------- 示例 3 --------------------------此命令删除 HKEY_CURRENT_USER\Environment 注册表项的 TestNew 子项:此命令在 HKEY_CURRENT_USER 项中创建注册表条目 pstest,并将它的值设定为 pstestvalue:remove-item -path hkcu:\Environment\TestNew-------------------------- 示例 4 --------------------------此命令将 TestNew 项複製到 TestCopy 子项:此命令将 HKEY_CURRENT_USER\Environment 项中的注册表条目 pstest 的值更新为 updatedvalue:copy-item -path hkcu:\Environment\TestNew hkcu:\Environment\TestNew\TestCopy -------------------------- 示例 5 --------------------------此命令显示有关 HKEY_LOCAL_MACHINE\Software 注册表项的所有子项的信息:此命令将 HKEY_CURRENT_USER\Environment 项中的注册表条目 pstest 的值名称重命名为 pstestnew:get-childitem -path hklm:\Software -recurse-------------------------- 示例 6 --------------------------此命令将 HKEY_CURRENT_USER\Environment\testnewcopy 注册表项及其属性以及它的所有子项及其属性一起移动到 HKEY_CURRENT_USER\Environment\testnew:此命令将 HKEY_CURRENT_USER\Environment 项中的注册表条目 pstestnew 複製到 HKEY_CURRENT_USER\Environment\testnewcopy 项:move-item -path hkcu:\environment\testnewcopy `-destination hkcu:\environment\testnew-------------------------- 示例 7 --------------------------此命令将 HKEY_CURRENT_USER\Environment\testnew 注册表项重命名为 HKEY_CURRENT_USER\Environment\test:此命令将 HKEY_CURRENT_USER\environment\testnewcopy 项中的注册表条目 pstestnew 複製到 HKEY_CURRENT_USER\environment\testnew 项:rename-item -path hkcu:\environment\testnew\ -newname test-------------------------- 示例 8 --------------------------此命令显示指定注册表项的安全描述符:此命令清除 HKEY_CURRENT_USER\Environment\testnew 项中的注册表条目 pstestnew 的值:get-acl -path hkcu:\environment\testnew | format-list -property *您可以使用 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"管理注册表项-------------------------- 示例 1 --------------------------此命令显示有关 HKEY_LOCAL_MACHINE\Software 注册表项的每个直接子项的信息:此命令显示 HKEY_CURRENT_USER\Environment 注册表项中的每个注册表条目的值名称和值数据:get-childitem -path hklm:\software只有当 Default 注册表条目具有注册表值时,才会返回该项 。-------------------------- 示例 2 --------------------------此命令在 HKCU:\Environment 子项下创建 TestNew 子项:此命令显示 HKEY_CURRENT_USER\Environment 注册表项中的 Temp 注册表条目的值名称和值数据:new-item -path hkcu:\Environment\TestNew-------------------------- 示例 3 --------------------------此命令删除 HKEY_CURRENT_USER\Environment 注册表项的 TestNew 子项:此命令在 HKEY_CURRENT_USER 项中创建注册表条目 pstest,并将它的值设定为 pstestvalue:remove-item -path hkcu:\Environment\TestNew-------------------------- 示例 4 --------------------------此命令将 TestNew 项複製到 TestCopy 子项:此命令将 HKEY_CURRENT_USER\Environment 项中的注册表条目 pstest 的值更新为 updatedvalue: copy-item -path hkcu:\Environment\TestNew hkcu:\Environment\TestNew\TestCopy-------------------------- 示例 5 --------------------------此命令显示有关 HKEY_LOCAL_MACHINE\Software 注册表项的所有子项的信息:此命令将 HKEY_CURRENT_USER\Environment 项中的注册表条目 pstest 的值名称重命名为 pstestnew:get-childitem -path hklm:\Software -recurse-------------------------- 示例 6 --------------------------此命令将 HKEY_CURRENT_USER\Environment\testnewcopy 注册表项及其属性以及它的所有子项及其属性一起移动到 HKEY_CURRENT_USER\Environment\testnew:此命令将 HKEY_CURRENT_USER\Environment 项中的注册表条目 pstestnew 複製到 HKEY_CURRENT_USER\Environment\testnewcopy 项:move-item -path hkcu:\environment\testnewcopy `-destination hkcu:\environment\testnew-------------------------- 示例 7 --------------------------此命令将 HKEY_CURRENT_USER\Environment\testnew 注册表项重命名为 HKEY_CURRENT_USER\Environment\test:此命令将 HKEY_CURRENT_USER\environment\testnewcopy 项中的注册表条目 pstestnew 複製到 HKEY_CURRENT_USER\environment\testnew 项:rename-item -path hkcu:\environment\testnew\ -newname test-------------------------- 示例 8 --------------------------此命令显示指定注册表项的安全描述符:此命令清除 HKEY_CURRENT_USER\Environment\testnew 项中的注册表条目 pstestnew 的值:get-acl -path hkcu:\environment\testnew | format-list -property *您可以使用 Clear-Item cmdlet 来清除子项的默认注册表条目的值 。例如,以下命令清除 HKEY_CURRENT_USER\Environment\testnew 注册表项的默认条目的值: clear-item -path hkcu:\environment\testnew -------------------------- 示例 1 --------------------------此命令显示有关 HKEY_LOCAL_MACHINE\Software 注册表项的每个直接子项的信息:此命令显示 HKEY_CURRENT_USER\Environment 注册表项中的每个注册表条目的值名称和值数据:get-childitem -path hklm:\software只有当 Default 注册表条目具有注册表值时,才会返回该项 。-------------------------- 示例 2 --------------------------此命令在 HKCU:\Environment 子项下创建 TestNew 子项:此命令显示 HKEY_CURRENT_USER\Environment 注册表项中的 Temp 注册表条目的值名称和值数据:new-item -path hkcu:\Environment\TestNew-------------------------- 示例 3 --------------------------此命令删除 HKEY_CURRENT_USER\Environment 注册表项的 TestNew 子项:此命令在 HKEY_CURRENT_USER 项中创建注册表条目 pstest,并将它的值设定为 pstestvalue:remove-item -path hkcu:\Environment\TestNew-------------------------- 示例 4 --------------------------此命令将 TestNew 项複製到 TestCopy 子项:此命令将 HKEY_CURRENT_USER\Environment 项中的注册表条目 pstest 的值更新为 updatedvalue:copy-item -path hkcu:\Environment\TestNew hkcu:\Environment\TestNew\TestCopy-------------------------- 示例 5 --------------------------此命令显示有关 HKEY_LOCAL_MACHINE\Software 注册表项的所有子项的信息:此命令将 HKEY_CURRENT_USER\Environment 项中的注册表条目 pstest 的值名称重命名为 pstestnew:get-childitem -path hklm:\Software -recurse-------------------------- 示例 6 --------------------------此命令将 HKEY_CURRENT_USER\Environment\testnewcopy 注册表项及其属性以及它的所有子项及其属性一起移动到 HKEY_CURRENT_USER\Environment\testnew:此命令将 HKEY_CURRENT_USER\Environment 项中的注册表条目 pstestnew 複製到 HKEY_CURRENT_USER\Environment\testnewcopy 项: move-item -path hkcu:\environment\testnewcopy `-destination hkcu:\environment\testnew-------------------------- 示例 7 --------------------------此命令将 HKEY_CURRENT_USER\Environment\testnew 注册表项重命名为 HKEY_CURRENT_USER\Environment\test:此命令将 HKEY_CURRENT_USER\environment\testnewcopy 项中的注册表条目 pstestnew 複製到 HKEY_CURRENT_USER\environment\testnew 项:rename-item -path hkcu:\environment\testnew\ -newname test-------------------------- 示例 8 --------------------------此命令显示指定注册表项的安全描述符:此命令清除 HKEY_CURRENT_USER\Environment\testnew 项中的注册表条目 pstestnew 的值:get-acl -path hkcu:\environment\testnew | format-list -property *您可以使用 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" 动态参数动态参数是由 Windows PowerShell 提供程式添加的 cmdlet 参数,且只可用于在启用了提供程式的驱动器中使用 cmdlet 的情况 。Type <Microsoft.Win32.RegistryValueKind>指定在将值存储到注册表中时使用的数据类型,或标识注册表中的值的数据类型 。ValueDescriptionString指定以 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 等效 。Unknown指示不支持的注册表数据类型,如 REG_RESOURCE_LIST 。