迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

使用 PowerShell 获取注册表键的值

作者:迹忆客 最近更新:2024/03/01 浏览次数:

在某些情况下,修复错误、调整 Windows 功能或完全卸载软件或产品需要你编辑 Windows 注册表。

虽然使用注册表编辑器可能很方便,但如果我们不够小心,仍然可能会出现错误。编辑注册表是非常微妙的,你的本地系统依赖于它。

本文将向你展示如何使用 Windows PowerShell 安全地获取注册表键值。


什么是注册表键

注册表键有点像结构化的文件夹,但它只存在于 Windows 注册表中。

此外,注册表键也可能包含注册表值,就像文件夹包含文件一样。注册表键还可以包括其他注册表键,通常称为子项。

如前所述,Windows 注册表是结构化的,最顶层的注册表键称为注册表配置单元。这些被认为是具有特殊权限的特殊注册表键,但它们仍然具有与标准注册表键相同的基本功能。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft

如果我们以上面的例子为例,HKEY_LOCAL_MACHINE 或简称 HKLM 是注册表路径的顶部。SOFTWARE 注册表键随后接替它,并且如前所述,注册表键中可以包含更多项,我们称之为子项,例如 Microsoft


在 PowerShell 中备份注册表键

在我们进行任何更改之前备份我们的注册表是明智的。如前所述,注册表中的任何意外更改都可能导致你的文件、软件甚至整个操作系统出现错误。

但是,使用你正在更改的密钥的副本,你可以放心地知道你可以恢复任何可能导致操作系统出现问题的更改。

我们可能会使用旧命令 reg export 来快速备份你的注册表。例如,下面的语法将备份整个 HKLM 注册表。

reg export HKLM C:\RegBack\HKLM.Reg /y

你备份的注册表键将以 .REG 文件格式导出。因此,你可以通过双击注册表文件并按照提示快速恢复备份的注册表键。


在 PowerShell 中使用 Get-ItemProperty Cmdlet 获取注册表键的值

Get-ItemProperty 是一个 PowerShell cmdlet,用于以比其相关命令 Get-Item 更易读的格式返回注册表键。我们还可以使用 Get-ItemProperty cmdlet 获取特定注册表键的值。

示例代码:

$registryPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion"

Get-ItemProperty -Path $registryPath -Name ProgramFilesDir

输出:

ProgramFilesDir : C:\Program Files
PSPath          : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Micr
                  osoft\Windows\CurrentVersion
PSParentPath    : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Micr
                  osoft\Windows
PSChildName     : CurrentVersion
PSDrive         : HKLM
PSProvider      : Microsoft.PowerShell.Core\Registry

该命令创建一个具有 PsPathPsParentPathPsChildnamePSDrivePSProvider 和另一个以键值名称命名的属性的 PSCustomObject 对象。

因此,要仅输出注册表键的实际值,我们可以在脚本中调用键值名称属性。

示例代码:

$registryPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion"

$keyValue = Get-ItemProperty -Path $registryPath -Name ProgramFilesDir

$keyValue.ProgramFilesDir

输出:

C:\Program Files

命令 Get-ItemProperty 适用于 PowerShell 版本 2 到 5。但是,在 Windows PowerShell 5 中,Microsoft 引入了一个新的 cmdlet,使在命令行中打印注册表键变得更加简单。


在 PowerShell 中使用 Get-ItemPropertyValue Cmdlet 获取注册表键的值

如前所述,Windows PowerShell 版本 5 中引入了 Get-ItemPropertyValue cmdlet,以解决以更短、更直接的方式获取注册表键值的查询。

cmdlet 只需要两个参数即可工作:注册表文件路径和需要查询值的注册表键。

示例代码:

Get-ItemPropertyValue 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion' 'ProgramFilesDir'

输出:

C:\Program Files

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

以管理员身份运行 PowerShell 脚本

发布时间:2024/03/01 浏览次数:87 分类:编程语言

本文将展示如何在不输入管理员凭据的情况下以管理员权限运行 powershell 脚本。如果代码片段未在提升的 Windows PowerShell 中运行,则以下脚本将自行提升你的脚本。

使用 Windows PowerShell 启动进程

发布时间:2024/03/01 浏览次数:58 分类:编程语言

本文将解释 Start-Process cmdlet 是什么以及参数如何与 cmdlet 一起使用。本文还展示了使用 Start-Process cmdlet 的好处

使用 PowerShell 远程处理执行命令

发布时间:2024/03/01 浏览次数:144 分类:编程语言

本文将讨论 PowerShell 远程处理的工作原理、几个 PowerShell 远程处理命令,以及我们如何将其投入实际使用。我们还将区分它与许多类似 cmdlet 的优势。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便