%windir%\System32\update\ 是 Windows 操作系统中的一个系统目录,通常用于存放操作系统更新、修复和维护过程中的相关文件。此目录可能包含自动化脚本、临时文件和驱动程序等。它主要用于在后台进行系统更新、驱动安装、修复操作等任务。
在功能更新期间运行自定义操作 | Microsoft Learn
%windir%\System32\update\
是 Windows 操作系统中的一个目录路径,其中:
- %windir%:是一个系统环境变量,指向 Windows 操作系统安装目录,通常为
C:\Windows
。所以,%windir%\System32\
实际上指向的是C:\Windows\System32\
。 - System32:是 Windows 系统文件夹之一,包含了大多数操作系统必需的核心文件、驱动程序和系统工具。
- update:这个目录通常用于存放与系统更新、安装和修复相关的文件。在一些 Windows 系统中,
update
文件夹可能是用来存储与操作系统更新或维护过程相关的脚本和资源文件的。
这个目录的作用是什么?
-
操作系统更新:在某些情况下,Windows 会将一些更新脚本或临时文件存放在
System32\update
文件夹中。这些文件可能用于操作系统的修复、更新安装、或者是与设备驱动程序的安装和更新相关的操作。 -
自动化脚本:有时,操作系统或第三方软件会在这个目录下放置一些脚本文件(例如
preinstall.cmd
,postuninstall.cmd
等),这些脚本可以在系统更新或某些操作执行时自动运行,以确保系统或应用程序顺利更新或配置。
为什么会有这个目录?
update
文件夹通常是 Windows 系统或应用程序的一部分,它可能在系统更新过程中自动创建。该目录可能包含用于维护系统稳定性和更新的脚本文件,这些文件通常由操作系统或某些第三方应用程序使用。这个文件夹并不一定会频繁被用户直接接触,而是由系统或某些特定的任务自动管理。
怎么样?
这个文件夹通常对大多数普通用户来说是透明的,您不需要直接与其交互。它通常用于自动化和后台维护任务。如果您有开发或系统管理员的需求,可能需要查看这些脚本或文件来进行调试或手动管理更新过程。
总之,%windir%\System32\update\
是 Windows 操作系统中的一个用于存储更新和维护文件的文件夹,但它的内容通常是由系统自动管理的。
帮助使用说明文档
功能、作用和使用示例 - %windir%\System32\update\
1. 目录简介
%windir%\System32\update\
是 Windows 操作系统中的一个系统目录,通常用于存放操作系统更新、修复和维护过程中的相关文件。此目录可能包含自动化脚本、临时文件和驱动程序等。它主要用于在后台进行系统更新、驱动安装、修复操作等任务。
- 路径解释:
%windir%
:代表 Windows 操作系统的安装目录,通常为C:\Windows
。- System32:Windows 系统的核心文件夹,包含操作系统的关键组件。
- update:用于存放与更新和维护相关的文件,可能包括系统更新的脚本、驱动程序或补丁。
2. 主要功能
- 操作系统更新:此目录可能会存储与 Windows 系统更新相关的临时文件、脚本和补丁。
- 驱动程序安装和修复:包含与设备驱动程序安装、修复或更新相关的文件。
- 自动化脚本:包含执行系统更新、修复、安装、卸载等操作的批处理文件(例如
.cmd
文件)。 - 临时文件存储:用于存储操作系统升级过程中产生的临时文件,帮助系统完成更新或修复。
3. 目录结构和内容
该目录结构可能类似于以下内容:
%windir%\System32\update\
├── run\
│ ├── 6971CB27-6F59-43CD-A764-969EE9BBCC1C\
│ │ ├── preinstall.cmd
│ │ ├── postuninstall.cmd
│ │ ├── precommit.cmd
│ │ ├── failure.cmd
│ │ └── success.cmd
└── runonce\
├── 6971CB27-6F59-43CD-A764-969EE9BBCC1C\
│ ├── preinstall.cmd
│ ├── postuninstall.cmd
│ ├── precommit.cmd
│ ├── failure.cmd
│ └── success.cmd
目录说明:
- run/ 和 runonce/:这两个子目录包含了与系统更新、修复过程相关的脚本文件。
run
文件夹通常包含长期或定期执行的脚本,而runonce
目录包含只在一次性操作中执行的脚本。 - 6971CB27-6F59-43CD-A764-969EE9BBCC1C:这是一个典型的 GUID 文件夹,代表某个特定操作或更新的标识。每次操作可能都会生成一个新的 GUID 文件夹,用于区分不同的更新任务。
- .cmd 文件:这些是批处理脚本文件,负责执行预安装(preinstall)、提交(precommit)、卸载后(postuninstall)、失败处理(failure)、成功处理(success)等操作。
4. 作用与使用场景
4.1 系统更新与修复
当 Windows 系统需要进行自动更新或修复时,操作系统可能会在该目录下放置更新脚本。这些脚本可能会执行一系列操作来确保系统补丁、驱动程序和其他文件正确安装。
4.2 自动化维护任务
对于一些定期维护任务(如定时检查更新、驱动程序修复),Windows 系统或管理员可能会使用此目录来存储并执行相关的自动化脚本。这些脚本帮助确保系统始终保持最新,减少人为干预。
4.3 临时文件存储
在某些操作(例如 Windows 更新、软件安装)期间,临时文件可能被存放在该目录。完成操作后,这些文件可能会被删除或转移至其他目录。
5. 示例:如何使用该目录
5.1 示例 1:使用 preinstall.cmd
脚本进行预安装任务
假设您有一个自定义的更新脚本,需要在系统更新之前运行一些初始化工作,例如备份重要文件或设置环境变量。您可以将这些操作写入 preinstall.cmd
脚本,并将其放入 %windir%\System32\update\run\
下。
preinstall.cmd
内容示例:
@echo off
rem 执行备份操作
xcopy "C:\重要文件" "D:\备份文件" /s /e /y
rem 设置环境变量
setx MY_CUSTOM_VAR "value"
echo 预安装任务完成
将该脚本保存到相应的目录后,系统在执行更新时会自动运行这个脚本。
5.2 示例 2:处理更新失败的情况
如果在更新过程中发生错误,系统可以运行 failure.cmd
脚本来进行错误处理和日志记录。
failure.cmd
内容示例:
@echo off
rem 记录错误信息到日志文件
echo 更新失败,错误信息:%ERRORLEVEL% >> "C:\日志\update_error.log"
rem 执行其他失败处理任务(例如通知管理员)
echo 更新失败,请联系管理员! | sendmail.exe -to admin@example.com
通过将该脚本放入 failure.cmd
,在更新失败时,操作系统会自动执行错误处理流程。
6. 使用注意事项
- 权限要求:该目录下的脚本通常需要管理员权限才能执行,因此普通用户无法直接修改或运行这些脚本。请确保您具有适当的权限来操作该目录。
- 自动化执行:脚本会在特定条件下自动运行,确保脚本内容的准确性与安全性,避免造成不必要的系统问题。
- 谨慎操作:修改该目录下的文件可能会影响系统的更新和维护过程,建议只有有经验的管理员或开发人员才能进行相关操作。
%windir%\System32\update\
目录在 Windows 系统中用于存放与系统更新、驱动程序安装、修复相关的文件及脚本。管理员可以利用该目录来管理系统更新和维护任务。合理使用其中的脚本文件,可以帮助确保系统稳定性并减少人为干预。请谨慎操作,确保文件的正确性和安全性。
概述
IT 专业人员可以通过在功能更新期间和之后运行他们自己的自定义操作脚本来自定义功能更新。 从 Windows 10 版本 1803 开始提供自定义操作。
运行自定义操作
关于自定义操作
自定义操作是在功能更新过程中运行的 .cmd 脚本。 这些脚本可在功能更新的四个阶段中运行:
- 预安装阶段:此阶段是指安装程序已启动但兼容性检查尚未开始。 此阶段中的操作在
preinstall.cmd
中指定。 如果脚本失败,功能更新将会失败。 - 预提交阶段:此阶段是指应用功能更新并重启系统之前。 此阶段中的操作在
precommit.cmd
中指定。 如果脚本失败,功能更新将会失败。 - 卸载后阶段:此阶段是指用户启动卸载功能更新后。 此阶段中的操作在
postuninstall.cmd
中指定。postuninstall.cmd
是 Windows 10 版本 2004 的新功能。 - 完成:此阶段是指安装程序完成之后。 如果功能更新失败或必须回滚,则
failure.cmd
可用于执行自定义操作或撤消以前的自定义脚本的操作。 如果功能更新成功,则success.cmd
可用于执行功能更新后的操作。success.cmd
是 Windows 10 版本 2004 的新功能。
自定义操作在由 Windows 安装程序安装的功能更新的过程中运行。 有些 Windows 功能更新会通过月度质量更新安装,然后通过“启用包”(用于激活 Windows 功能的小型可快速安装的“主开关”)来启用。 例如,从 Windows 10 版本 2004 更新到 Windows 10 版本 20H2。 通过启用包安装的功能更新不支持自定义操作。
自定义操作文件夹结构
自定义操作脚本会从 %windir%\System32\update\
中的子文件夹中运行,具体取决于你是要为某一个升级还是要针对将来所有的升级来运行脚本。 Windows 安装程序会在以下位置自动查找这些脚本,如果它们存在,则将会运行它们:
Folder | 说明 |
---|---|
%windir%\System32\update\run | Windows 安装程序将会迁移这些文件夹中的脚本,以便在将来的升级中运行它们。 |
%windir%\System32\update\runonce | 此文件夹中的脚本将只在一次升级中运行,不会为将来的升级进行迁移。 |
%windir%\System32\update\run<GUID> | 创建独一无二的 GUID 来清晰标识你运行的每个脚本。 使用此 GUID 来命名 run 和 runonce 文件夹中的文件夹。 |
%windir%\System32\update\runonce<GUID> | 创建独一无二的 GUID 来清晰标识你运行的每个脚本。 使用此 GUID 来命名 run 和 runonce 文件夹中的文件夹。 |
%windir%\System32\update\run<GUID>\reflectdrivers | 此文件夹中对启动至关重要的驱动程序将会反映出来。 请确保 reflectdrivers 文件夹只包含必要的一组加密驱动程序。 驱动程序比必要的多可能会对升级方案产生负面影响。 请参阅设备驱动程序,以详细了解反映的驱动程序。 |
%windir%\System32\update\runonce<GUID>\reflectdrivers | 此文件夹中对启动至关重要的驱动程序将会反映出来。 请确保 reflectdrivers 文件夹只包含必要的一组加密驱动程序。 驱动程序比必要的多可能会对升级方案产生负面影响。 请参阅设备驱动程序,以详细了解反映的驱动程序。 |
如果更新失败或必须回滚,则 failure.cmd 脚本可用于执行自定义操作或撤消以前的自定义脚本的操作。 如果该脚本失败,更新将会失败。
自定义操作脚本位置和示例
脚本位置
下表显示了用于运行自定义操作的文件的文件夹路径结构:
运行(脚本将会迁移) | 运行一次(脚本不会迁移) |
---|---|
%windir%\System32\update\run<GUID>\preinstall.cmd | %windir%\System32\update\runonce<GUID>\preinstall.cmd |
%windir%\System32\update\run<GUID>\precommit.cmd | %windir%\System32\update\runonce<GUID>\precommit.cmd |
%windir%\System32\update\run<GUID>\postuninstall.cmd | %windir%\System32\update\runonce<GUID>\postuninstall.cmd |
%windir%\System32\update\run<GUID>\success.cmd | %windir%\System32\update\runonce<GUID>\success.cmd |
%windir%\System32\update\run<GUID>\failure.cmd | %windir%\System32\update\runonce<GUID>\failure.cmd |
%windir%\System32\update\run<GUID>\reflectdrivers\example1.inf | %windir%\System32\update\runonce<GUID>\reflectdrivers\example2.inf |
%windir%\System32\update\run<GUID>\reflectdrivers\example1.sys | %windir%\System32\update\runonce<GUID>\reflectdrivers\example2.sys |
示例文件路径和名称
类别 | 文件位置示例 |
---|---|
脚本部署数据 | %windir%\system32\update\ |
迁移目录 | %windir%\system32\update\run\ |
不会迁移的脚本 | %windir%\system32\update\runonce\ |
具有 GUID 的文件夹路径 | %windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\ |
具有 GUID 的脚本名称 | %windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\preinstall.cmd |
%windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\precommit.cmd | |
%windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\postuninstall.cmd | |
%windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\failure.cmd | |
%windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\success.cmd | |
%windir%\system32\update\runonce\6971CB27-6F59-43CD-A764-969EE9BBCC1C\preinstall.cmd | |
%windir%\system32\update\runonce\6971CB27-6F59-43CD-A764-969EE9BBCC1C\precommit.cmd | |
%windir%\system32\update\runonce\6971CB27-6F59-43CD-A764-969EE9BBCC1C\postuninstall.cmd | |
%windir%\system32\update\runonce\6971CB27-6F59-43CD-A764-969EE9BBCC1C\failure.cmd | |
%windir%\system32\update\runonce\6971CB27-6F59-43CD-A764-969EE9BBCC1C\success.cmd | |
反映的驱动程序文件夹 | %windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\reflectdrivers\ |