Reg.exe 和 regini.exe:它们是什么、它们的用途是什么以及如何在 Windows 中使用它们。

最后更新: 06/06/2025
作者: 艾萨克
  • 登记处 Windows 集中并组织所有系统和应用程序设置,替换旧的 .INI 文件。
  • reg.exe 和 regini.exe 是从命令行修改注册表的重要工具。 comandos 或脚本,每个都有特定的功能。
  • 注册表使用不当可能会导致安全和操作问题;在进行任何更改之前务必备份注册表。

注册表编辑器

要是你想知道 Windows 中的 reg.exe 和 regini.exe 文件到底是什么?您来对地方了。这两个可执行文件在我们研究 Windows 注册表管理时经常出现,虽然大多数人可能会忽略它们,但它们在管理和配置操作系统方面却至关重要。了解它们各自的功能、工作原理以及使用它们的潜在风险和好处,将帮助您充分利用计算机,避免出现严重问题。

在这篇详尽的文章中,我们详细分析 reg.exe 和 regini.exe 是什么?它们的区别是什么?它们的用途是什么?如何安全地使用它们?以及操纵注册表的风险。 以及其他与手动和脚本编辑相关的关键概念。所有内容都以自然、易懂、直白的语言进行讲解,即使您不是系统管理专家,也能理解所有内容。

什么是 Windows 注册表?

Windows 注册表是 Microsoft Windows 操作系统配置和运行的基本支柱。 它是一个分层数据库,不仅存储操作系统的配置信息,还存储使用此架构的应用程序的配置信息。在注册表出现之前,大多数程序和系统本身都将其配置存储在单独的文件(著名的 .INI 文件)中,这些文件通常位于共享目录中。这种方法存在许多缺点,尤其是在多个用户共享同一台计算机的环境中,因为它使得为每个用户自定义设置和集中管理变得困难。

Windows 注册表的设计就是为了解决所有这些问题。 所有相关的配置设置都集中在一个结构化的存储库中,无需维护分散的单个文件,从而实现更高效、更安全、更快速的管理。注册表的二进制格式允许比文本文件更快地访问和修改信息。此外,注册表引入了严格数据类型的概念,这是旧版 .INI 文件(作为简单的文本文件)所不支持的。这在管理复杂数据或执行手动编辑时至关重要。

另一个关键优势是针对每个用户的个性化管理。 每个 Windows 配置文件都有各自的注册表部分,允许每个人在同一台计算机上拥有自己的设置,而不会影响其他人。这种方法还可以提高安全性,因为每个用户继承不同的权限,并且系统的各个方面都单独管理。此外,系统备份和还原可以包含注册表状态,从而更轻松地排除意外更改导致的问题。

登记处的结构和内部运作

Windows 注册表是一个高度结构化的数据库,分为多个级别。 此结构的基本组成部分是“键”和“值”。键的功能类似于文件系统中的文件夹:它们可以包含子键和值。值则是名称-数据对,存储在键中。键路径使用反斜杠 (\) 符号表示层次结构,与传统的 Windows 文件路径(例如 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft)非常相似。

注册表的整个结构基于一组预定义的根键。 它们各自执行特定的功能并划分系统管理的区域:

  • HKEY_LOCAL_MACHINE(H​​KLM): 存储影响所有用户的全局计算机设置。
  • HKEY_CURRENT_CONFIG (HKCC): 包含有关 硬件 当时正在使用。仅出现在某些 Windows 版本中。
  • HKEY_CLASSES_ROOT (HKCR): 包含文件关联、COM 对象和应用程序关系。
  • HKEY_CURRENT_USER(HKCU): 仅从活跃用户收集设置。
  • HKEY_USERS(HKU): 维护所有已加载的用户配置文件的设置。
  • HKEY_PERFORMANCE_DATA: 存储系统性能数据。它是内部的,通常不会显示在注册表编辑器中。
  • HKEY_DYN_DATA: 它仅存在于 Windows 9x/Me 等旧系统上,并存储动态硬件信息。
  设置带使用配置文件的 Wi-Fi 网络:完整实用指南

这些根的子键构成了其余的结构,并且每个键可以有一个默认值和其他命名值。 需要注意的是,键名不区分大小写,但不能包含反斜杠。每个值可以是不同的类型,这些类型决定了存储数据的格式和用途。以下是一些示例:

  • REG_SZ: 纯文本(以空结尾的字符串,通常为 UTF-16LE)。
  • REG_DWORD: 32 位数值(整数)。
  • REG_BINARY: 任意二进制数据。
  • REG_MULTI_SZ: 字符串列表。
  • REG_EXPAND_SZ: 可扩展字符串,可包含环境变量。
  • REG_QWORD: 64 位数值(整数)。

注册表实际存储在哪里?

Windows 注册表并不存储在单个文件中,而是存储在系统上的几个隐藏的二进制文件中。 它们的位置取决于 Windows 版本,但一般来说,关键文件存储在 %SystemRoot%\System32\Config 路径下。在这里,我们会找到 SYSTEM、SOFTWARE、SAM、SECURITY 和 DEFAULT 等文件,它们对应于注册表的不同部分或“子树”。

每个用户的个人设置都存储在相应配置文件文件夹内的 Ntuser.dat 和 Usrclass.dat 文件中。 此机制允许使用漫游配置文件的用户(例如在公司环境中)在登录另一台设备时携带他们的设置。

在 Windows 95/98/Me 等旧系统上,注册表位于 Windows 文件夹中的 USER.DAT 和 SYSTEM.DAT 文件中。 在 Windows Me 中,还有 CLASSES.DAT。当前 Windows 的设计更加强大,只要网络服务和权限允许,就可以方便地进行备份、灾难恢复和远程编辑。

注册表管理和编辑

Windows 注册表可以通过多种方式进行编辑,包括手动和编程。 当然,进行任何更改时都必须非常小心,因为不正确的修改可能会导致小故障甚至操作系统完全崩溃。

手动编辑:Regedit 和其他工具

主要的手动编辑工具是 注册表编辑器.exe,Windows 注册表编辑器。 目前,regedit.exe 已经是多个版本中浏览、修改、创建、删除或导出/导入键和值的标准集成解决方案。

在较旧的 Windows 系统(NT 3.x 及更高版本)上,还有 regedt32.exe,它具有权限和值类型的附加功能。 但自 Windows XP 起,两者已统一为 regedit.exe,它继承了 Windows 9x 版本的界面和 regedt32.exe 的扩展功能。

您可以从 regedit 执行如下操作:

  • 创建和修改键和值。
  • 分配、更改或删除访问权限(在 NT 系统上)。
  • 以纯文本 .REG 文件形式导入或导出注册表片段。
  • 按键名、值或数据搜索字符串。
  • 如果有权限,请编辑网络上远程计算机的注册表。
  • 上传、下载和操作子树文件。

Regedit 警告用户修改注册表的危险,并建议在进行任何更改之前制作备份。 如果出现错误,可能会出现严重的不稳定,甚至可能需要重新安装 Windows。

.REG 文件是导出和导入注册表片段的标准格式。 在现代 Windows 中,这些文件以字符串“Windows 注册表编辑器版本 5.00”(Unicode)开头,而在旧版本中,它们以“REGEDIT4”(ANSI)开头。它们的语法允许您添加、修改和删除键和值。

  • 要添加/更新:只需输入键名和相应的值。
  • 要删除一个键:在键名称前面加上减号 (-)。
  • 要删除一个值:在等号 (=) 后添加减号 (-)。

命令行编辑:reg.exe 和 regini.exe

除了图形编辑器之外,还有用于操作注册表的专门的命令行工具。 这就是 reg.exe 和 regini.exe 的作用所在,它们对于系统管理员、自动化、脚本和计划任务特别有用。

什么是 reg.exe?

reg.exe 是 Windows 现代版本中包含的可执行文件,它提供了一组命令,用于从命令行查看、添加、修改、删除、导出和导入注册表项。 当您需要进行大规模更改、将其集成到脚本中或自动管理更改时,推荐使用此工具。其主要用途包括:

  • 查询并导出键和值: 允许您快速搜索有关特定键的状态的信息,可选择按值或类型进行过滤。
  • 创建和删除键和值: 您可以创建新的密钥、删除现有的密钥或批量修改值数据。
  • 导入和导出 .REG 文件: 促进文本文件配置的集成。
  • 脚本和计划任务中的自动化: 非常适合商业环境或重复性任务。
  • 远程管理: 某些命令可以在远程机器日志上运行(前提是您有权限并且防火墙允许)。
  三星 Magician 完整教程:功能、限制和替代方案

一个典型的使用示例是:

reg.exe 添加“HKCU\Software\Microsoft\Windows Script\Settings”/v AmsiEnable /t REG_DWORD /d 0x00000000

此命令创建或修改指定键中的 AmsiEnable 值,并将该值设置为 0。

Reg.exe 在正确使用时是安全的。作为一个强大的工具,它也可以被利用 恶意软件 修改关键配置,因此建议审查任何 脚本 或使用 reg.exe 的命令。

什么是 regini.exe?

regini.exe(注册表初始化程序)是另一个高级注册表编辑实用程序,专门用于管理关键权限。 它通常不是预先安装的,但包含在 Microsoft Windows 资源工具包(Windows NT、2000 或 Server 2003)中,尽管有时可以在更高版本中找到它或从 Microsoft 网站下载。

其主要功能是从命令行或通过文本脚本修改注册表项和值的权限。 这使得它成为需要自动调整注册表某些部分的访问权限的管理员或高级用户的基本工具,例如,确保某些应用程序或用户的安全。

regini.exe 如何工作? 执行时,它会将指定的脚本(带有指令的文本文件)加载到内存中,并对本地计算机或远程计算机上的注册表项的值和权限进行指示的更改。

其基本语法为:

regini 脚本文件...

一些重要参数:

  • -m \\远程计算机名称: 允许您将更改应用到网络上另一台机器的注册表。
  • -h 配置单元文件 hiveroot: 通过加载配置单元文件来修改特定子树(仅限高级情况)。
  • -在: 确定输出中层次结构的缩进级别。
  • -o 宽度输出: 调整结果输出的字符宽度。
  • -b: 输出与旧版本的 regini.exe 兼容。
  • 脚本文件: 包含要执行的指令的一个或多个文本文件。

脚本文件必须遵循特定的语法,例如:

\\注册表\\机器\\软件
\\Registry\\Machine\\System\\CurrentControlSet\\Services\\lanmanserver\\参数 DiskSpaceThreshold = REG_DWORD 0x00000000

第一个示例设置给定密钥的权限,允许管理员完全控制并允许特定组进行其他权限控制。

在这些脚本中,权限以二进制数字表示,对应于授予用户组的访问级别。例如,1 通常表示管理员 - 完全控制。

regini.exe 将用户模式键(例如 HKEY_LOCAL_MACHINE)转换为其内部内核路径(例如:\\registry\\machine)。 从互联网或官方资源复制脚本时务必牢记这一点,以避免转换错误。

它允许您使用单个指令修改注册表值和权限,这使其对于自动化、大规模部署和高级管理非常有用。 它还可以与其他资源工具包实用程序结合使用,例如显示当前权限的 regdmp.exe 和允许您从命令行查看和修改注册表项的权限的 subinacl.exe。

编辑注册表时的权限、安全性和风险

Windows 注册表最敏感的方面之一是对密钥权限的管理。 访问控制列表 (ACL) 允许您精确定义哪些人可以访问、修改或删除注册表中的信息,以及如何访问、修改或删除。这意味着:

  • 标准用户无法修改关键设置。
  • 管理员可以访问和编辑任何必要的部分。
  • 系统本身可以根据组策略、登录等限制或授予权限。

不正确地更改权限可能会使您的系统受到攻击或导致应用程序和服务停止工作,因此任何操作都应经过仔细的计划和审查。

使用 regini.exe 是自动调整权限的高级方法,但建议仅由彻底了解 Windows 及其注册表内部工作原理的用户使用。 如果您使用从第三方下载的脚本,则应仔细审核其内容,因为此处的错误可能会造成严重后果。

注册表备份和还原

在修改注册表中的任何内容之前 — — 无论是手动修改,还是使用 reg.exe、regini.exe、regedit, PowerShell的 或任何其他工具——创建备份至关重要。 根据版本和环境的不同,Windows 提供了不同的方法来在您接触这个敏感数据库之前保护自己:

  • 系统还原: 创建自动还原点(包括注册表状态)。
  • NT备份: 在旧版本中可用,允许作为系统状态的一部分进行备份。
  • 使用 regedit 导出: 通过选择文件 → 导出,您可以保存整个注册表的副本或仅保存相关部分的副本。
  • reg.exe命令行命令: reg.exe 允许您准确、快速地导出部分注册表,非常适合脚本。
  • 专业资源套件工具: 例如 Regback.exe 和 RegRest.exe(更面向商业或高级技术支持环境)。
  逐步使用 DeepSeek API 的完整指南

在旧系统上还有诸如 Scanreg.exe/Scanregw.exe(Windows 98/Me)和 RDISK.EXE(Windows NT 4.0)等实用程序。 在所有情况下,恢复注册表的先前副本是避免因错误修改而造成不可逆转的损害的最佳方法。

修改注册表的其他方法:脚本和 API

使用命令编辑注册表

除了 reg.exe 和 regini.exe 之外,还有其他方法可以自动且灵活地与 Windows 注册表进行交互:

PowerShell的

PowerShell 提供了用于注册表管理的高级 cmdlet,允许您以极高的精度和控制力搜索、创建、删除和修改条目。 一个常见的例子是:

设置项属性 -路径'注册表::HKEY_CURRENT_USER\Software\Microsoft\Windows Script\Settings' -名称'AmsiEnable' -类型 DWord -值 0

PowerShell 目前是 Windows 系统管理的首选工具,因为它功能强大、灵活,并且能够集成到复杂的脚本中。

VBScript 和 JScript 脚本

可以使用 WScript.Shell 对象从 VBScript 和 JScript 脚本修改注册表。 例如:

WScript.CreateObject("WScript.Shell").RegWrite "HKCU\Software\Microsoft\Windows Script\Settings\AmsiEnable", 0, "REG_DWORD"

或者,在 JScript 中:

(new ActiveXObject("WScript.Shell")).RegWrite("HKCU\\Software\\Microsoft\\Windows Script\\Settings\\AmsiEnable", 0, "REG_DWORD");

这些方法对于自动化任务或当您想作为较大脚本的一部分修改特定值时很有用。

使用 Windows API

Windows 提供了用于与注册表交互的各种 API 函数,这些函数在 advapi32.dll 库中实现。 其中脱颖而出:

  • 注册打开键、注册关闭键
  • RegCreateKey、RegDeleteKey、RegDeleteValue
  • RegSetValue 和 RegSetValueEx
  • RegQueryValue、RegQueryValueEx
  • RegEnumKey、RegEnumValue
  • RegLoadKey、RegSaveKey
  • RegConnectRegistry、RegNotifyChangeKeyValue

许多语言和平台(C#、VB.NET、Delphi、PowerShell、Perl 等)都提供了简化这些 API 使用的库。 例如,.NET 中的 Microsoft.Win32.Registry、Delphi 中的 TRegistry 或 Perl 中的 Win32::TieRegistry。

访问控制、虚拟化和兼容性

随着 Windows 的发展,权限系统和注册表管理变得更加复杂。 例如:

  • 组策略: 允许管理员通过注册表(gpedit.msc、gpmc.msc)应用集中限制或设置。
  • .POL 指令文件: 允许您将按用户或组过滤的限制规则应用于注册表设置。
  • 注册表虚拟化: 自 Windows Vista 起,缺乏足够权限的应用程序若试图写入受保护区域(例如 HKEY_LOCAL_MACHINE),其操作将被重定向至用户配置文件中的虚拟位置。这提高了与设计不良的旧版程序的兼容性,并增强了安全性。
  • 保护模式的虚拟化(沙盒): Internet Explorer 和其他低完整性进程将注册表写入重定向到隔离环境以避免漏洞。
  • INI 重定向(InifileMapping): 通过将对配置文件的访问重定向到注册表中的适当位置,允许为 16 位系统编写的应用程序在 Windows NT 或更高版本上正确运行。

其他操作系统中的等效版本

注册表是 Windows 的一个显著特点,但其他系统采用不同的配置管理方法:

  • Linux/Unix: 全局配置通常位于 /etc/ 中的文本文件中;用户配置位于用户配置文件中的隐藏文件(~/.config、~/.bashrc 等)中。
  • 苹果系统: 使用用户库文件夹中的属性列表(plist)文件。
  • RISC操作系统: 它为每个应用程序使用特定的目录,这有利于可移植性和多个版本的共存。
  • 酒红色 (Windows 兼容层 Unix的): 使用文本文件(system.reg、user.reg)重新创建类似 Windows 的注册表。
  • IBM AIX: 它具有对象数据管理器(ODM)来存储系统和设备配置。
  • GNOME 环境 (Linux): 提供 GConf,它模拟注册表但基于独立文件,提高了容错能力。
注册表编辑器
相关文章:
如何修复常见的 Windows 注册表错误:完整且更新的指南