Netwrix 1Secure 提供跨数据和身份的统一可见性——免费试用14天,享有完全访问权限。开始免费试用

资源中心博客

PowerShell 创建注册表项:管理员完整指南

PowerShell 创建注册表项:管理员完整指南

Aug 25, 2025

PowerShell 为创建、编辑和删除注册表项和值提供了比 regedit 和 reg.exe 更安全、效率更高的替代方案。像 New-Item, Set-ItemProperty, Remove-Item Rename-ItemProperty 这类 cmdlet 可实现自动化、远程管理和错误处理。管理员应备份注册表,以提权方式运行 PowerShell,并使用 Test-Path 以及 try/catch 来避免错误配置。在采取适当的保护措施后,PowerShell 可简化本地和远程的注册表管理。

管理员可以使用久经考验的 regedit 用户界面或 reg.exe 实用工具来完成所有典型的 Windows 注册表操作。但还有另一种选择——PowerShell。PowerShell 可以大幅简化本地机器或远程环境下的注册表管理工作。

在本文中,我们将详细介绍如何使用 PowerShell 创建、管理和删除注册表项及其值,并说明诸如使用 PowerShell 在远程计算机上管理注册表等高级操作。


什么是 Windows 注册表?

Windows 注册表是一个分层数据库,用于存储 Microsoft Windows 操作系统及应用程序的配置设置和其他关键信息。例如,当安装某个程序时,它可以在注册表中创建新的子项和值来保存其设置和状态;同时,也可能会修改现有条目,以便与 Windows 更深度地集成。

内核、设备驱动程序、服务以及 Security Accounts Manager 都可以使用注册表。诸如桌面设置、文件关联和应用程序偏好等特定于用户的设置会存储在注册表中,以便为 Windows 计算机上的每个用户帐户提供个性化体验。注册表还允许访问用于对系统性能进行分析的计数器。

注册表结构

Windows 注册表具有分层结构,由根键、子键和值组成。

根键(Hives)

根键是所有子键和值所归属的更广泛的类别。它们包括:

  • HKEY_CLASSES_ROOT (HKCR) — 包含已注册应用程序的信息,例如文件关联和 OLE 对象类 ID。
  • HKEY_CURRENT_USER (HKCU) — 存储当前登录用户特有的设置,例如桌面偏好设置和应用程序设置。
  • HKEY_LOCAL_MACHINE (HKLM) — 保存与该计算机相关、适用于所有用户的配置信息。其中包括系统硬件设置、已安装软件设置以及安全策略。
  • HKEY_USERS (HKU) — 包含当前计算机上正在加载的所有用户配置文件。HKCU 实际上是 HKU 的一个子键,用于指向当前已登录的用户。
  • HKEY_CURRENT_CONFIG (HKCC) — 链接到当前硬件配置文件的设置,详细说明经常访问的系统设备和设置。
registry editor screenshot

子键

每个根键都包含多个子键,而这些子键又可能包含更多子键,从而形成类似树状的结构。子键的作用类似于文件系统中的文件夹,用于将相关设置组织成组。

每个子项都有一个关联的 type ,用于确定 values(数据)可以分配什么类型。可用类型包括 REG_SZ(字符串)、REG_BINARY(二进制值)以及 REG_DWORD(32 位数字)。

system folder screenshot

警告:在进行任何更改之前先备份注册表

Windows 注册表包含操作系统和应用程序运行所必需的配置和设置。若进行不当修改,可能导致系统不稳定或应用程序错误,甚至可能阻止 Windows 启动。

因此,在使用 PowerShell 或任何其他工具编辑注册表之前,请创建备份或系统还原点。这样一来,如果出现问题,你就可以将系统恢复到之前的状态。本指南后面将提供备份和还原注册表的步骤。


PowerShell 与 Windows 注册表

PowerShell 为管理 Windows 注册表提供了一套强大的 cmdlet 工具集,与诸如 Regedit 之类的传统方法相比,能够提供更细致且更强大的处理方式。你可以使用 PowerShell 创建注册表项(键)和值,并对其进行修改和删除。使用 PowerShell 来管理注册表,特别适合需要高效管理系统配置或将变更应用到多台计算机的系统管理员和高级用户。

PowerShell 的优势

PowerShell 是 Microsoft 开发的一种脚本语言,用于方便系统管理、配置管理以及任务自动化。PowerShell 基于 .NET 框架构建,这使其能够与对象和 .NET 函数协同工作。PowerShell 的主要优势包括:

  • 自动化与脚本编写— PowerShell 可以通过脚本自动化重复性任务,使其成为系统管理员高效管理大量系统的强大工具。
  • 全面的 cmdlet 集合 — PowerShell 提供了大量预定义的 cmdlet,用于执行常见的系统管理任务,从文件操作到注册表与进程管理。
  • 管道支持 — 用户可以将一个命令的输出作为另一个命令的输入,从而用尽可能少的代码实现复杂操作。
  • 功能广泛 — PowerShell 脚本语言支持变量、循环、条件,以及错误处理和并行处理等高级功能。
  • 本地与远程管理 — PowerShell 可以访问 Windows Management Instrumentation (WMI) 和 COM(Component Object Model)对象,使用户能够在本地和远程系统上执行广泛的管理任务
  • 可扩展的接口 — 用户和第三方厂商可以通过开发自定义 cmdlet、模块、函数和脚本来扩展 PowerShell 的功能。

PowerShell 提供程序在注册表管理中的作用

PowerShell 提供程序可让用户以统一的方式访问和管理 Windows 注册表以及其他数据存储(例如文件系统和证书存储)。它们能通过标准的 PowerShell 命令,以一致的方式访问以不同格式存储的数据。

提供程序可让你遍历注册表的层级结构,类似于在文件系统中浏览目录和文件的方式。你可以像进入和退出文件夹一样进入或退出注册表项,使得探索和管理注册表设置变得直观。

用于 PowerShell 注册表管理的 Cmdlet

PowerShell 提供了一套用于管理 Windows 注册表的 cmdlet。例如,你可以在 PowerShell 中使用 New-Item cmdlet 来创建注册表项。下面是用于注册表管理的一些关键 cmdlet 的概览:

  • Get-Item — 检索指定位置处的注册表项
  • Set-Item — 修改注册表项的值
  • New-Item — 使用 PowerShell 添加注册表项
  • Remove-Item — 删除注册表项及其值
  • Get-ItemProperty — 获取注册表项的属性(值)
  • Remove-ItemProperty — 从注册表项中删除一个值
  • Set-ItemProperty — 更改注册表项的值
  • Get-ChildItem — 列出注册表项的子项(子键)和值

为注册表管理配置 PowerShell

以管理员身份运行 PowerShell

在许多情况下,修改注册表需要提升的权限,因此您必须以提升的模式运行 PowerShell。这也被称为“以管理员身份运行”。例如,修改系统文件、注册表设置或会影响计算机上所有用户的配置时,需要管理员权限;此外,设置防火墙规则或配置 IP 地址等网络配置任务也需要管理员权限。更改执行策略以运行脚本,以及在 Windows 系统上安装、更新或移除软件时,管理员权限也经常是必需的。

要以提升权限模式打开 PowerShell,请按以下步骤操作。如果系统提示“用户帐户控制(User Account Control,UAC)”,请单击 以继续。

Windows 10 和 Windows 11

  1. 单击 开始 菜单(Windows 图标),并在搜索栏中输入 PowerShell
  2. 在搜索结果中右键单击 Windows PowerShellWindows Terminal(取决于您的配置)。
  3. 从快捷菜单中选择 以管理员身份运行

Windows Server

  1. 打开 Start Menu,然后导航到 Windows PowerShellWindows Terminal,在程序列表中选择。
  2. 右键单击 Windows PowerShellWindows Terminal
  3. 选择 Run as administrator

获取有关提供程序和驱动器的信息

要检索当前 PowerShell 会话中可用的提供程序和驱动器的信息,你可以使用 Get-PSProvider 和 Get-PSDrive cmdlet。

检索可用的提供程序信息(Get-PSProvider)

要检索有关可供使用的 PowerShell 提供程序的信息(包括它们支持的功能细节以及它们关联的驱动器),请使用以下 cmdlet:

Get-PSProvider

powershell screenshot

检索可用的驱动器信息(Get-PSDrive)

PowerShell 中的驱动器是对不同数据存储的逻辑表示,例如文件系统、注册表项、证书和环境变量。要检索当前 PowerShell 会话中可用的驱动器信息,请使用 Get-PSDrive cmdlet。对于表示存储的驱动器(例如文件系统驱动器),它还会显示已使用和可用空间。

Get-PSDrive

Get PSDrive screenshot

使用 PowerShell 创建、管理和编辑注册表项

创建新的注册表项(New-Item)

你可以在 PowerShell 中使用 New Item cmdlet 来创建注册表项:

      New-Item -Path "HKCU:\Software\MyNewApplication"
      
New Item screenshot

使用 PowerShell 创建注册表项后,可以使用 Get-Item

      Get-Item -Path "HKCU:\Software\MyNewApplication"
      
Get item path screenshot

检查注册表项是否存在 (Test-Path)

为了避免错误和不期望的结果,建议在运行会影响这些项的命令之前,先运行 Test-Path 来验证注册表项、文件以及其他项目是否存在。下面是一个简单示例:

      Test-Path -Path "HKCU:\Software\MyNewApplication"
      
Test Path screenshot

下面是一个更复杂的脚本,可提供更详细的输出:

      # Check if HKCU\Software\MyNewApplication exists

if (Test-Path -Path “HKCU:\Software\MyNewApplication”) {

    Write-Output "Registry key 'HKCU:\Software\MyNewApplication' exists."

} else {

    Write-Output "Registry key 'HKCU:\Software\MyNewApplication' does not exist."

}
      
Registry Key screenshot

处理常见错误

使用 PowerShell 管理 Windows 注册表时,可能会遇到错误。以下是一些最常见的问题以及应对方法:

  • 访问被拒绝 — 该错误通常是因为你尝试在缺少足够权限的情况下修改注册表所导致的。在执行需要提升权限的操作时,请务必在 PowerShell 上右键单击并选择 以管理员身份运行
  • 路径不正确 — 拼写错误或路径指定不正确都可能导致错误。请始终仔细核对你要访问或修改的注册表路径。请记住,注册表路径区分大小写。
  • 无法识别 Cmdlet — 该错误可能表示你正在使用不支持注册表管理 cmdlet 的旧版 PowerShell。请将 PowerShell 更新到系统可用的最新版本。
  • 已禁用脚本执行 — 由于安全设置,PowerShell 可能被配置为阻止脚本执行。要更改此设置,你可以运行 Set-ExecutionPolicy RemoteSigned(或指定其他符合你安全要求的策略级别)。请谨慎操作,因为更改执行策略可能会使你的系统面临风险。
  • 数据类型错误 — 当你创建或修改注册表项时,请确保使用正确的数据类型。
  • 项目不存在 — 尝试访问或修改不存在的注册表项或值将导致错误。在执行操作之前,请使用 Test-Path 来验证注册表路径是否存在。
  • 通配符使用不当 — 虽然通配符在某些场景中很有帮助,但不正确的使用可能导致范围过大、意外的更改或错误。请谨慎使用通配符,并考虑使用 -WhatIf 参数在执行前预览更改。

使用 PowerShell 添加和更新注册表项与值

添加新的项和值(New-ItemProperty)

你可以使用 PowerShell 来添加注册表项并为其分配值,方法是使用 New ItemProperty cmdlet。以下是基本语法:

      New-ItemProperty -Path "HKCU:\Software\MyNewApplication" -Name "Setting_Name" -Value "Setting_Value" -PropertyType "String"
      

例如,下面的命令将创建一个名为 NewString 的新注册表项,并将其赋值为 Hello

      New-ItemProperty -Path "HKCU:\Software\MyNewApplication" -Name "NewString" -PropertyType String -Value "Hello"
      
Hello example screenshot
NewString in folder screenshot

同样地,要创建一个名为 NewDWORD 且其值为 1234 的子项,你可以使用这个 cmdlet:

      New-ItemProperty -Path "HKCU:\Software\MyNewApplication" -Name "NewDWORD" -PropertyType DWord -Value 1234
      
powershell screenshot
new dword screenshot

更新注册表值(Set-ItemProperty)

要在 PowerShell 中编辑注册表项,请使用 Set-ItemProperty cmdlet:

下面介绍如何使用 PowerShell 设置注册表(Registry)值:

      Set-ItemProperty -Path "HKCU:\Software\MyApplication" -Name "Setting_Name" -Value "New_Value"
      

您也可以使用 PowerShell 来更改注册表(Registry)值。例如,要更新存储在注册表中的应用程序设置值,可以使用类似下面这样的命令:

      Set-ItemProperty -Path "HKCU:\Software\MyNewApplication" -Name "NewString" -Value "Hello World"
      

尽管 Set-ItemProperty 是执行 PowerShell 编辑注册表(registry)任务的一种有效方式,但该 cmdlet 不会产生任何输出。要验证您的更改,您可以使用 Get-Item

      Get-Item -Path "HKCU:\Software\MyNewApplication"
      
newstring screenshot

另外,您也可以在注册表编辑器(Registry Editor)中查看更改:

registry editor screenshot

再看另一个示例。如果您想将名为 NewDWORD 的子项(subkey)的值更改为 5678,则可以使用以下 cmdlet:

      Set-ItemProperty -Path "HKCU:\Software\MyNewApplication" -Name "NewDWORD" -Value 5678
      

要验证你的更改,请使用 Get-Item cmdlet:

      Get-Item -Path "HKCU:\Software\MyNewApplication"
      
newDword selected screenshot

删除注册表值(Remove-ItemProperty)

要删除注册表值,你可以使用 Remove-ItemProperty cmdlet:

      Remove-ItemProperty -Path "HKCU:dummyNetwrixKey" -Name "NetwrixParam"
      

删除注册表项(Remove-Item)

要删除注册表项,请使用 Remove-Item(如下面所示) –Recurse 参数会在不需要额外确认的情况下删除所有子项。

      Remove-Item -Path "HKCU:dummyNetwrixKey" -Recurse
      

若要删除指定键(指定键本身不被删除)内部的所有子项,请在路径末尾添加 * 符号:

      Remove-Item -Path "HKCU:dummyNetwrixKey*" -Recurse
      

重命名注册表值(Rename ItemProperty)

要重命名注册表项的值,请使用 Rename ItemProperty cmdlet:

      Rename-ItemProperty -Path "HKCU:dummyNetwrixKey" -Name "NetwrixParam" -NewName "NetwrixNewParam"
      

重命名注册表项(Rename-Item)

要重命名注册表项,请使用 Rename-Item cmdlet:

      Rename-Item -Path "HKCU:dummyNetwrixKey"  NetwrixNewKey
      

使用 PowerShell 进行高级注册表操作

高级注册表操作包括使用 PowerShell App Deployment Toolkit,并通过 PowerShell 执行远程注册表管理。

使用 PowerShell App Deployment Toolkit(PSADT)

PSADT 是一组用于部署和管理应用程序的脚本和工具集合。它通常用于部署需要特定配置或用户交互的复杂或自定义应用程序。通过修改部署脚本以适应新版本或变更,也可以用于更新或打补丁应用程序。此外,组织还会使用 PSADT 在部署过程中向用户提供信息提示、确认提示以及反馈,从而提升用户的意识和配合度。

主要功能和优势包括:

  • 部署脚本 — 这些脚本允许你定义并自定义应用程序的安装流程。它们可以处理诸如检查先决条件、安装软件、配置设置以及安装后清理等任务。
  • 可自定义的用户界面 — 在部署过程中向用户显示提示、通知和进度条,有助于提供反馈并管理用户交互。
  • 日志功能 — 记录部署活动和错误对于故障排查和审计目的至关重要。
  • 安装前和安装后任务 — 你可以定义在安装前准备系统的任务,并在之后执行额外的配置或清理任务。
  • 应用程序的配置设置 — 你可以定义在部署过程中动态应用的设置。这有助于将部署流程适配到不同的环境或需求。
  • 静默应用安装 — 在需要时,您可以在无需用户交互的情况下运行部署。

远程注册表管理(Enter-PSSession 和 Invoke-Command)

管理员可以使用 PowerShell 访问、浏览并修改网络内远程计算机的注册表。在使用 PowerShell 远程编辑注册表时请务必谨慎,因为不正确的修改可能导致系统不稳定或产生安全漏洞。同时还要确保您具备必要的管理权限,并且防火墙和网络设置允许远程访问。

以下是用于远程注册表管理的主要 PowerShell 命令:

  • Enter-PSSession 用于与单台远程计算机建立交互式会话;Exit-PSSession 用于结束该会话。
  • Invoke-Command 用于向一台或多台远程计算机发送单个命令或脚本块。例如,它可以高效地在多个系统上完成相同的注册表更改。

Enter-PSSession 和 Exit-PSSession

Enter-PSSession 用于与单台远程计算机启动交互式会话。它特别适用于需要以交互方式执行一系列命令的场景。进入会话后,你可以像直接登录到远程系统一样执行注册表操作。以下是需要执行的步骤:

在使用 Enter-PSSession, 之前,请使用以下命令确认远程计算机已启用 PowerShell Remoting:

      Enable-PSRemoting
      

要启动交互式会话,请运行以下 cmdlet:

      Enter-PSSession -ComputerName Windows11 -Credential Get-Credential
      
windows powershell screenshot

要 확인是否已连接,请查看提示符之前是否显示远程计算机名称:

console screenshot

连接成功后,你可以使用标准的 PowerShell cmdlet 以交互方式管理注册表。例如,你可以通过运行此 cmdlet 从远程计算机获取注册表值:

      Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\BitLocker"
      
administrator window screenshot

要退出远程会话并返回到本地 PowerShell 提示符,请使用 Exit-PSSession cmdlet。

Invoke-Command

Invoke-Command 允许你在一台或多台远程计算机上执行命令。它适用于非交互式任务,或者当你需要从脚本运行命令时也很有用。例如,要从远程计算机获取注册表值,你可以使用以下命令:

      Invoke-Command -ComputerName Windows11 -Credential Get-Credential -ScriptBlock {

    Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\BitLocker"

}

You can specify multiple computers as follows:

-ComputerName 'Computer1', 'Computer2'
      

当你运行 Invoke-Command 时,系统会提示你为远程计算机提供凭据:

Invoke command screenshot

在提供有效凭据并单击 OK 之后,你将看到你运行的脚本的输出:

code block screenshot

远程注册表管理的安全注意事项

使用 PowerShell 远程编辑注册表时,请务必遵循以下安全最佳实践:

  • 使用安全的身份验证方法。
  • 请通过使用以下参数确保所有通信都已加密:-UseSSL,并将其与 Enter-PSSessionInvoke-Command 一起使用。
  • 请谨慎启用 PowerShell 远程功能,并将访问限制为受信任的主机和网络。
  • 为使用 PowerShell 进行远程访问的用户和进程仅授予所需的最小权限。
  • 设置严格的执行策略,以防止未经授权的脚本运行。
  • 使用 Just Enough Administration (JEA) 来限制访问。JEA 是一种安全技术,可对任何能够使用 PowerShell 管理的内容启用委派管理。
  • 配置防火墙规则以限制对 PowerShell 远程(remoting)端口的访问(默认情况下:HTTP 使用 5985,HTTPS 使用 5986)。

管理注册表的最佳实践

使用 PowerShell 有效且安全地管理 Windows 注册表,请务必:

  • 了解注册表结构。 熟悉注册表结构,尤其是 HKEY_LOCAL_MACHINE 和 HKEY_CURRENT_USER 这两个分支(hives)及其子键。
  • 在进行更改之前先备份注册表。 在进行任何更改之前都务必先备份注册表,尤其是在进行批量修改或可能影响系统稳定性的更改时。备份与恢复说明将在下一部分提供。
  • 以管理员身份运行。 许多注册表修改都需要管理员权限。为避免错误,请确保以提升的权限运行 PowerShell。
  • 谨慎行事。 由于注册表在系统运行中扮演至关重要的角色,请在操作时格外小心,尤其是在删除键或值时。
  • 避免直接编辑关键键。 对注册表进行不正确的更改,尤其是对 HKEY_LOCAL_MACHINE\System 这类关键键的更改,可能导致系统不稳定或故障。
  • 使用错误处理。 在代码周围实现 try/catch 块,以便管理异常,特别是在注册表项可能不存在的情况下。
  • 避免对路径进行硬编码。 在可能的情况下,使用变量和内置的 PowerShell 命令来动态解析路径。这样做可以提升脚本的可移植性和可读性。
  • 在安全环境中进行测试。 在将更改应用到线上系统之前,请在受控环境中测试你的脚本,例如使用与目标环境相匹配的虚拟机。在测试环境中识别并缓解问题,有助于保护生产系统的稳定性。
  • 记录你的变更。 请详细记录通过 PowerShell 脚本进行的所有注册表更改。文档应包含更改的目的、原始状态以及预期影响。这种做法在故障排查和审计中极其有价值。
  • 在支持的情况下使用事务。 使用受支持的 cmdlet 并添加 -UseTransaction 选项,这样如果出现问题,你就可以撤销该操作。
  • 遵循网络安全最佳实践。 坚持诸如执行 最小特权原则 以及不要将敏感信息写死在代码中等核心安全最佳实践。

如何备份和还原注册表设置

你可以使用 PowerShell 或 regedit 来 还原注册表 的设置,也可以备份。

请注意,某些更改可能需要重新启动才能生效。

使用 PowerShell

要备份注册表,请以管理员身份打开 PowerShell 并使用以下命令:

      reg export HKCU\Software\MyNewApplication C:\registry_backup.reg
      
administrator powershell screenshot

要从备份中还原注册表,请使用以下命令:

      reg import c:\registry_backup.reg
      
registry backup screenshot

使用注册表编辑器(regedit)

使用注册表编辑器备份注册表分支,请按以下步骤操作。

  • 打开注册表编辑器。 一种方法是按下 Win + R,输入 regedit,然后按下 Enter。 另一种选项是在 注册表编辑器 中搜索 开始 菜单并打开它。
  • 右键单击要备份的注册表分支,然后选择 导出
export screenshot
  • 选择用于保存备份文件的位置,给文件指定一个有意义的名称,并确保导出范围设置为 全部
  • 单击 保存 以创建包含已导出注册表设置的 .reg 文件。
document export screenshot

要从注册表备份进行还原,请按以下步骤操作:

  • 在注册表编辑器中,单击 文件 > 导入
import window screenshot
  • 导航到您保存备份 .reg 文件的位置,选择该文件,然后单击 打开
import registry file
  • 当出现确认消息时,单击 确定 返回到注册表编辑器。
Registry editor message screenshot

结论

借助 PowerShell,IT 专业人员可以简化一系列注册表管理任务。但请记住,即使是一次不恰当的更改也可能导致操作系统进入蓝屏(Blue Screen of Death)。因此,在对注册表进行任何更改之前,你应当 100% 确认自己要更改的内容,并准备一份最新的备份。同时,你还应该仔细跟踪你所做的所有更改。 Netwrix Auditor for Windows Server 可以帮上忙:它会跟踪、报告并对 Windows 注册表的更改发出警报。

常见问题(FAQ)

如何使用 PowerShell 添加注册表项,以关闭远程桌面服务(Remote Desktop Services, RDS)?

要禁用 RDS,请将 fDenyTSConnections 的值设为 1。下面是要使用的命令示例:

      Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name fDenyTSConnections -Value 1
      

使用 PowerShell 尝试添加注册表项时,为什么会出现“Type:”提示?

Type: 提示通常是因为 PowerShell cmdlet 在未提供所有必需参数的情况下被发出,或者命令中存在语法错误。

在 PowerShell 中添加新项时,如果注册表路径不存在,我该怎么办?

如果所需路径不存在,你可以使用 New-Item cmdlet 来创建它:

      New-Item -Path "HKCU:\Software\MyNewApplication"
      

为避免此问题,在使用 PowerShell 添加新项之前,请务必使用 Test-Path cmdlet 检查你要访问的注册表路径是否存在:

      Test-Path -Path "HKCU:\Software\MyNewApplication"
      

我如何在 PowerShell 中创建或更新注册表项(registry value),并确保在键不存在时会先创建该键?

下面的脚本使用 Test-PathNew-ItemSet-ItemProperty 这些 cmdlet,用于检查注册表路径(registry path)是否存在;如果不存在,则在设置或更新指定的注册表项(registry value)之前先创建它:

      # Define registry path, key name, and value

$Path = "HKCU:\Software\MyNewApplication"

$propertyName = "Version"

$propertyValue = "829"

# Check if the registry path exists, create if not

if (-Not (Test-Path $Path)) {

    Write-Output "Registry path does not exist. Creating it"

    New-Item -Path $Path -Force | Out-Null

}

# Set registry value

Set-ItemProperty -Path $Path -Name $propertyName -Value $propertyValue
      

用于添加或更新注册表项(registry key)和值(value)的“reg add”在 PowerShell 中对应的等效命令是什么?

要在 PowerShell 中创建注册表项(registry key)和值(value),或更新现有项,可以使用 Set-ItemProperty cmdlet:

      Set-ItemProperty -Path "HKCU:\Software\MyNewApplication" –Name “Version” -Value “839”
      

在 PowerShell 中使用 New-Item 时加上 -Force 该注意什么?为什么需要谨慎?

使用带有 Force 参数的 New-Item 可能存在风险,因为它可能导致对现有项目的无意覆盖以及其他意外后果。在使用 New-Item 之前,务必检查项目是否存在——尤其是在使用 -Force 时。

使用 PowerShell 往 HKCU 的指定路径添加注册表项(registry key)时,应使用哪条命令?

要使用 PowerShell 向 HKCU(HKEY_CURRENT_USER)分支的指定路径添加注册表项(registry key),可以使用 New-Item cmdlet,如下所示:

      New-Item -Path "HKCU:\Software\MyNewApplication"
      

您的免费 Windows 注册表教程

了解更多


分享到

了解更多

关于作者

Tyler reese

Tyler Reese

产品管理副总裁,CISSP

凭借在软件安全行业超过二十年的经验,Tyler Reese 对当今企业面临的快速演变的身份与安全挑战非常熟悉。目前,他担任 Netwrix Identity and Access Management 组合的产品总监;他的职责包括评估市场趋势、确定 IAM 产品线的发展方向,并最终满足终端用户的需求。他的职业经历从为财富 500 强公司提供 IAM 咨询,到在一家大型直销面向消费者(direct-to-consumer)的公司担任企业架构师,涵盖范围十分广泛。 目前,他持有 CISSP 认证。