使用 PowerShell 获取注册表键的值
在某些情况下,修复错误、调整 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
该命令创建一个具有 PsPath
、PsParentPath
、PsChildname
、PSDrive
、PSProvider
和另一个以键值名称命名的属性的 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
相关文章
在 PowerShell 中安装 NuGet 包
发布时间:2024/03/01 浏览次数:161 分类:编程语言
-
本文将了解发生错误的原因以及安装适用于 PowerShell 的 NuGet 提供程序的分步指南。
在 PowerShell 中 Ping 主机名列表和输出结果到 CSV
发布时间:2024/03/01 浏览次数:53 分类:编程语言
-
本教程将教你 ping 主机名列表并将结果输出到 PowerShell 中的 CSV。
以管理员身份运行 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 的优势。
使用 PowerShell 将输出导出到文件
发布时间:2024/03/01 浏览次数:82 分类:编程语言
-
本文将讨论如何将输出数据导出到文件、将数据添加到现有文件以及使用 PowerShell 操作输出。
使用 PowerShell 将 CSV 导出到 Excel
发布时间:2024/03/01 浏览次数:109 分类:编程语言
-
本教程将教你使用 PowerShell 将 CSV 文件导出到 Excel 文件。