本文可帮助你解决在执行后第一次启动后sysprep
,sysprep.inf 文件中 GuiRunOnce 字段下列出的命令可能无法运行的问题。
原始产品版本: 基于文件的写入筛选器、Windows Embedded POSReady
原始 KB 数: 2390828
现象
在运行 Windows Embedded POSReady 且启用了基于文件的写入筛选器(FBWF)和注册表筛选器的设备上,在 sysprep.inf 文件中的 GuiRunOnce 字段下列出的命令在执行后sysprep
可能不会在第一次启动时运行。
这可能是由于缺少注册表项: HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
原因
注册表项可能缺失,因为它未写入注册表数据库。 启用注册表筛选器驱动程序服务后,它可以防止注册表项写入注册表数据库。 注册表筛选器驱动程序用于保护嵌入式设备的注册表数据库。 它阻止用户对设备的注册表进行更改。 注册表筛选器驱动程序服务补充 FBWF 服务,应关闭这两项,以允许将注册表项写入注册表数据库。 遗憾的是,注册表筛选器驱动程序服务和 FBWF 服务在“服务”MMC 管理单元中均不可见。 若要控制其设置,可能需要修改相关的注册表设置。
解决方法
运行 Sysprep 文件之前,可能需要进行以下注册表项更改,以使 GUIRunOncen
命令能够在 Sysprep.ini 文件中工作。 注册表更改将禁用注册表筛选器驱动程序服务和 FBWF 服务。 启动注册表编辑器(转到“开始”、“运行”、“键入Regedit.exe,按 Enter)并创建以下 regnode(如果不存在),或者如果存在,请按下面所述设置值。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RegFilter] "Start"=dword:00000004
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\FBWF] "Start"=dword:00000004
现在, Sysprep
可以运行。
可以通过进行以下注册表更改来启用注册表筛选器驱动程序服务和 FBWF 服务:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RegFilter] "Start"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\FBWF] "Start"=dword:00000000
重要
此步骤指示修改注册表。 但是,注册表修改不当可能会出现严重问题。 作为额外保护措施,请在修改注册表之前先将其备份。 如果之后出现问题,您就可以还原注册表。 有关如何备份和还原注册表的详细信息,请参阅:如何备份和还原 Windows 中的注册表。
可以通过多种方式添加这些注册表项。 可以使用 RegEdit,如以下示例所示。 或者,还可以使用注册表项(.reg)文件将注册表更改远程分发到多个基于 Windows 的计算机。 运行 .reg 文件时,文件内容将合并到本地注册表中。 因此,必须谨慎分发 .reg 文件。 以下文章提供了有关注册表的高级信息,其中介绍了多种编辑方法,包括 Regedit 和 .reg 文件:
使用 Regedit 的示例:
单击“开始”菜单,选择“运行...”
类型: Regedit
按 Enter 键或单击“确定”
将以下键添加到注册表的“软件”部分:
[HKEY_LOCAL_MACHINE\software\Microsoft\Windows Embedded POSReady] "Version"=(REG_SZ)"2.0"
详细信息
注册表筛选器驱动程序服务是 FBWF 服务的一项免费服务,对于 Sysprep 方案,这两项服务都应关闭。 注册表筛选器驱动程序服务和 FBWF 服务在“服务”MMC 管理单元中不可见。 这需要通过注册表操作(直接或通过 REG 文件)来控制服务启动类型。