允许在应用 V 虚拟环境(VE)内运行的应用程序读取或写入本机注册表

摘要

本文档的目的是介绍 Microsoft Application Virtualization (App-v)版本4.6 中存在的对注册表传递功能的支持。 当在虚拟环境(VE)内运行的应用程序需要在客户端上读取/写入本机注册表的内容时,将使用注册表传递功能。

更多信息

此问题的注册表传递功能地址是应用程序需要将值写入到本机的非虚拟注册表中,以便在客户端系统上创建这些值,然后对有权访问本机的程序可见注册表(如本机安装的应用程序)。

尽管由 VE 提供的隔离通常是所需的,并且是应用程序提供的功能的基础,但在某些情况下,应用程序需要具有对本机系统的读/写访问权限并更新其状态。 通过注册表传递功能,可以从运行于 VE 内部运行的应用程序进行写入或传递注册表操作。 从 VE 内写入直通位置的值可以随后由其他应用程序使用。

声明传递

传递密钥在客户端系统上的以下位置定义:

HKLM\Software\[Wow6432Node\]Microsoft\Softgrid\4.5\SystemGuard\Overrides\VirtualRegistryPassThroughEx

VirtualRegistryPassThroughEx 项应包含 REG_MULTI_SZ 类型值,这些值标识客户端上应由 VE 中的应用程序本地访问的注册表项。

示例:

HKEY_LOCAL_MACHINE\Software\Microsoft\DirectDrawHKEY_CURRENT_USER\Software\Microsoft\ActiveMovie\devenum

在这些级别或在以下树中的任意位置读取或写入的所有注册表值都将转到运行该 VE 的系统上的本机注册表。

冲突

程序包与传递相重叠

在所有情况下,程序包中的注册表值优先于传递位置。 这意味着在两个位置(即传递位置和虚拟注册表)中定义的位置-将创建一个忽略传递位置的运行时环境。 例如,如果程序包具有 HKEY_LOCAL_MACHINE \Software\Microsoft\DirectDraw\KeyName\VRegValue = 5,并且为 HKEY_LOCAL_MACHINE \Software\Microsoft\DirectDraw 定义了注册表传递,则 VRegValue 将在 VE 内部具有值5,而不考虑在目标计算机上的值。

DSC 程序包与传递相重叠

DSC 程序包(即使用动态套件合成的程序包)与 "主要" 或 "辅助程序包" 相同,其行为与 "传递" 和 "本机" 之间存在重叠的非 DSC 情况相同。

有关 DSC 的详细信息,请参阅如何使用动态套件合成http://technet.microsoft.com/en-us/library/cc843662.aspx

64位注意事项

定义为传递注册表项的字符串不会通过 32-64 操作系统函数(如重定向)进行修改。 字符串将按逐字处理。

本地系统上是否存在密钥

为了使此功能可预测运行,在传递中指定的密钥也必须存在于本地系统上。

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

谢谢您的反馈意见!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×