本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

驱动器映射

 

文件服务器的用户数据的集中式的存储进行了重大变革。 但是,它还引入了可用性问题最终用户尝试记住长而复杂的路径来访问其文件和文件夹。 IT 专业人员通过引入到驱动器映射用户解决该问题。 驱动器映射使用户能够只需将单个驱动器号对文件和驻留在文件服务器的文件夹相关联。 驱动器映射减少返回回最终用户的可用性,因为它删除记住长而复杂的路径的用户需要访问集中的数据。 现在,当用户需要访问其数据,他们只是可以从 Windows 资源管理器,它表示用户的主文件夹选择 H 驱动器。 或者,他们可以访问在部门或组织之间共享的数据的 S 驱动器。

虽然映射的驱动器返回给最终用户的可用性,它为 IT 专业人员创建复杂性。 为了便于用户的映射的驱动器,IT 专业人员创建大型和复杂矩阵的用户属于与用户所需的特定映射驱动器相关的组。 和这种杂乱的 user-to-group-to-mapped-drives 复杂性在一个精心设计的登录脚本中实现。 这限制了可以支持和更新该脚本为仅显示那些已编写脚本的知识的 IT 专业人员的数量。 此外,复杂的脚本很难进行故障排除和支持。 组策略首选项驱动器映射来解决此问题。

组策略首选项驱动器映射扩展可以配置用于企业环境中而无需复杂且难以完成登录脚本的映射的驱动器。 使用相同的工具来配置组策略 ; 配置驱动器映射首选项扩展从而简化了管理应用于使用组策略管理编辑器。

组策略驱动器映射扩展为您提供了基本的驱动器映射需要如创建、 删除或替换驱动器映射。 此外,驱动器映射扩展使更新标签和现有驱动器映射的可见性状态。 通过组策略驱动器映射扩展提供其他功能包括启用永久驱动器映射和创建驱动器映射使用备用凭据。

可以将驱动器映射首选项与组策略首选项项目级别导向来实现精细和复杂的驱动器映射方案保持简单、 易于管理,并且不要使用或需要了解的脚本编写语言结合起来。

Drive Map preference item configuration UI

组策略驱动器映射首选项用户界面提供了几种选择来帮助实现大多数在企业环境中存在的驱动器映射方案。

该首选项提供了一种四个操作:创建替换更新删除 该首选项的行为会因选定的操作以及是否存在的驱动器号。

  1. 创建

    创建新的映射的驱动器的用户。

  2. delete

    删除用户的映射的驱动器。

  3. 替换

    删除创建映射的用户的驱动器。 结果替换操作是覆盖与映射驱动器相关联的所有现有设置。 如果驱动器映射不存在,则替换操作会创建新的驱动器映射。

  4. 更新

    修改现有的映射驱动器的用户的设置。 此操作不同于替换在于它只更新首选项中定义的设置。 配置映射驱动器上的所有其他设置保持不变。 如果驱动器映射不存在,则更新操作会创建新的驱动器映射。

若要配置新的驱动器映射或重新创建驱动器映射,请键入完全限定的 UNC 路径 (如 \\server\sharename、 \\server\hiddenshare$ 或 \\server\sharename\foldername) 的网络共享。 或者,您可以通过按 F3 并从变量的浏览器中选择一个变量中使用内置的组策略首选项变量。

若要修改现有的驱动器映射驱动器号来匹配,请将此字段留空。

仅当选择的操作是此选项才可用创建替换,或更新

若要将该映射的驱动器保存在用户的设置并尝试还原在每次后续登录,请选中此复选框。 否则为该驱动器是映射,但不是保存在用户的设置。

仅当选择的操作是此选项才可用创建替换,或更新

若要提供的驱动器号旁边显示的描述性标签,请在此字段中键入的标签。 或者,您可以通过按 F3 并从变量的浏览器中选择一个变量中使用内置的组策略首选项变量。

仅当选择的操作是此选项才可用创建替换,或更新

选择映射的驱动器,按驱动器号,若要配置标识:

将分配第一个到映射的驱动器,选择可用的驱动器号使用第一个可用的开头,然后选择要开始检查可用性的驱动器号。 仅当选择的操作是此选项才可用创建替换,或更新

若要将特定的驱动器号分配到映射的驱动器中,选择使用,然后选择驱动器号。 仅当选择的操作是此选项才可用创建替换,或更新,并且如果您键入了一个位置。

若要修改现有驱动器映射 (按驱动器号标识),选择现有,然后选择驱动器号。 此选项才可用才位置字段为空,且选择的操作是更新

若要从特定驱动器号向前删除所有驱动器映射,请选择都删除全部、 开头,然后选择要开始删除驱动器映射的驱动器号。 物理驱动器将跳过不会出错。 仅当选择的操作是此选项才可用删除

若要删除特定映射的驱动器,请选择删除,然后选择驱动器号。 仅当选择的操作是此选项才可用删除

若要实现驱动器映射使用非当前登录用户的凭据,请键入要使用的凭据。 仅当选择的操作是此选项才可用创建替换,或更新

组策略驱动器映射管理扩展将替代凭据存储在配置 XML 文件中,被设计为通过所有域用户阅读。 若要缓解的密码以明文形式存储,管理扩展对进行模糊处理使用派生的高级加密标准 (AES) 密钥的密码。

配置映射驱动器的可见性:

若要保持当前配置映射的驱动器的可见性,请选择无更改 这并不优先于隐藏/显示所有驱动器设置。

若要防止驱动器显示在 Windows 资源管理器中,选择隐藏此驱动器 这将优先于隐藏/显示所有驱动器设置。

若要允许此驱动器显示在 Windows 资源管理器中,选择显示此驱动器 这将优先于隐藏/显示所有驱动器设置。

仅当选择的操作是此选项才可用创建替换,或更新

驱动器映射首选项可用于配置的物理驱动器而不是映射的驱动器的可见性。 若要这样做,请选择更新操作,将位置字段保留为空,选择的物理驱动器的驱动器号,然后配置隐藏/显示此驱动器隐藏/显示所有驱动器选项。

在 Windows 资源管理器中配置所有映射驱动器和物理驱动器的可见的性。 选项相媲美的隐藏/显示此驱动器,但全局应用于所有驱动器。

隐藏/显示此驱动器选项具有的优先级通过隐藏/显示所有驱动器 例如,如果驱动器映射首选项具有隐藏/显示此驱动器选项设置为隐藏此驱动器隐藏/显示所有驱动器选项设置为显示所有驱动器,则所有驱动器都均可见除指定为隐藏的驱动器。

组策略驱动器映射首选项扩展是一个托管 gpprefcl.dll 动态链接库中的组策略客户端扩展。 作为指定组策略的一部分,对象必须是一个组策略中存储的数据的每个组件具有两个 128 位的唯一标识符以字符串格式。

第一个标识符将负责使用,或处理的数据的实体与组策略对象中存储的数据的部分相关联。 此标识符被称为客户端扩展的标识符。

第二个标识符将与负责创作,或对它的管理实体的组策略对象中存储的数据的部分相关联。 此标识符被称为管理单元中标识符或工具标识符。

组策略驱动器映射首选项扩展的客户端扩展唯一标识符是 {5794DAFD-BE60-433f-88A2-1A31939AC01F}。 管理单元中唯一标识符的组策略驱动器映射首选项扩展是 {2EA1A81B-48E5-45E9-8BB7-A6E3AC170006}。

组策略在多个位置中使用的客户端标识符。 首先,客户端标识符存储在本地计算机的注册表中。 组策略基础结构要求的所有客户端扩展的注册。 注册表位置是

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions

组策略基础结构中读取要发现的计算机上的所有组策略客户端扩展的上述注册表位置。 在组策略应用期间不处理未列出在此位置的客户端扩展。 注册信息作为名称包括客户端扩展唯一标识符的子键。 多个注册表值位于下方标识符键。 这些值由组策略基础结构使用,但还提供有价值信息如名称的客户端扩展 (中默认注册表值),承载的客户端扩展代码二进制文件 (中DLLName注册表值),和事件源和事件日志的扩展插件使用的报表信息、 警告和错误 (中EventSources注册表值分别使用逗号分隔)。

Client-side extension registration in the registry

当组策略对象配置为包含来自特定客户端扩展的数据时,编辑器必须包括客户端扩展和管理单元中的唯一标识符作为保存组策略对象中的数据的一部分。

扩展配置为将应用于计算机的特定数据保存到gPCMachineExtensionNames组策略容器对象的属性。 配置为将应用于用户的扩展为特定的数据保存到gPCUserExtensionNames属性。 如果扩展特定的数据配置为将应用于用户和计算机,然后编辑器中将保存在扩展标识符和管理单元标识符到组策略容器对象的两个属性

GPCMachineExtensionNamesgPCUserExtensionNames属性可以容纳一个或多个组的唯一标识符。 每个标识符组组成扩展标识符后跟一个或多个管理单元中的标识符。 相应地通过围绕在方括号 ([]) 内的这两个标识符括起来的标识符的组。

extensionID1snapinID1snapinID2…… [ extensionIDnsnapinIDn…]

必须以字母数字升序列出的唯一标识符分组。 保存这些任何其他顺序会妨碍将组策略正确应用也可能会阻止您编辑的组策略对象内的现有扩展插件特定数据。

在组策略对象中存储扩展标识符和管理单元中标识符提供优化组策略处理和管理的提示。 因为组策略基础结构知道在处理哪些扩展插件所需应用组策略对象中托管的数据之前处理是最佳的。 创作最好因为编辑器具有提示,以确定需要哪些特定的管理单元来编辑数据的不同而不同。

组策略驱动器映射首选项扩展将存储在一个 XML 格式的文件中的组策略对象与相关联的所有配置数据。 Drives.xml文件将驻留在驱动器承载并且在所有域控制器的 SYSVOL 共享上共享的组策略模板中的文件夹。 对于每个组策略对象的组策略模板位置而异,字符串值存储在gPCFileSysPath上的组策略容器对象的属性。

\\dns_domain_name\Sysvol\dns_domain_name\Policies\group_policy_id

组策略首选项配置文件使用两个 XML 元素来描述的配置数据: 外部元素和内部元素。 外部元素用作内部的 XML 元素的逻辑容器。 内部元素表示属于容器 (外部 XML 元素) 的一个或多个首选项的配置。

组策略驱动器映射配置文件使用外部 XML 元素名为驱动器 此元素用作内部元素的集合其中每个内部的元素都表示驱动器映射首选项。 驱动器的外部元素支持两个属性:clsid禁用

驱动器的组策略驱动器映射配置文件的外部元素包含一个必需和一个可选属性。

Clsid

Clsid属性是表示为全局唯一标识符 (GUID) 的 128 位唯一标识符。 Clsid值标识的外部元素的类型。 组策略驱动器映射客户端扩展需要的外部元素clsid值等于 {8FDDCC1A-0C3C-43cd-A6B4-71A6DF20DA8C}。 这是客户端扩展如何标识和验证的外部元素的类型驱动器

禁用

禁用的属性是驱动器的外部元素的可选属性。 该属性使用数字字符串来表示一个布尔值。 如果值为 1 表示 true,并且值为 0 指示 false。

驱动器的外部元素为禁用的属性 equaling true 指示禁用所有内部元素的配置。 这会阻止组策略驱动器映射扩展处理的任何内部元素的配置文件。 禁用的属性为 false 指示启用的所有内部元素的配置和处理将继续正常进行。

一个驱动器没有外部元素禁用属性指示外部元素永远不会被禁用。 在这种配置的默认值为禁用属性为 false,这意味着启用外部元素,并且处理将继续正常进行。 禁用特性出现在配置第一次的外部元素被禁用且仍保留在其余部分的配置文件生存期的配置。 一次在配置中,该属性的值是使用各自的配置,更改但永远不会移除。

驱动器的外部元素接受一种类型的内部元素。 驱动器(非复数) 内部元素表示单个的驱动器映射首选项。 可以有一个或多个驱动器内的内部元素驱动器的外部元素。

每个驱动器内部元素包含描述内部元素的属性。 使用这些特性是联合管理编辑器和客户端侧扩展作为一种方法来标识一个驱动器内部元素从下一步。 驱动器内部元素属性不包含配置数据。

ByPassErrors

ByPassErrors属性是可选属性驱动器内部元素。 该属性使用数字字符串来表示一个布尔值。 值为 1 表示 true,值为 0 表示 false。

一个或多个驱动器的内部元素包含在一个驱动器使要处理一个或多个首选项的客户端扩展的外部元素。 一个驱动器具有 byPassErrors 属性也同样适用的内部元素指示组策略驱动器映射扩展应继续处理下一步的驱动器内部元素无论 if 当前结果驱动器内部元素是失败。 为 false 的 byPassErrors 属性指示扩展应停止处理后续驱动器内部元素如果当前结果驱动器内部元素是失败。

一个驱动器没有内部元素byPassErrors属性指示内部元素已永远不会被配置为停止的错误。 在这种配置的默认值为byPassErrors属性为 true,这意味着任何内部元素失败不会停止处理后续的内部元素。 ByPassErrors特性出现在配置第一次内部的元素被配置为出错时停止。 一旦在此配置中,该属性的值更改与每个相应的配置,但永远不会删除。

更改

更改属性是可选属性驱动器内部元素。 该属性使用一个字符串值时在 UTC 中上次修改内部元素表示的日期和时间。 字符串值使用年-月-日: 分: 秒的格式。

更改

更改属性是可选属性驱动器内部元素。 该属性使用一个字符串值时在 UTC 中上次修改内部元素表示的日期和时间。 字符串值使用年-月-日: 分: 秒的格式。

Clsid

Clsid属性是表示为全局唯一标识符 (GUID) 的 128 位唯一标识符。 Clsid值标识的内部元素的类型。 组策略驱动器映射客户端扩展需要每个内部元素的clsid值等于 {935D1B74-9CB8-4e3c-9914-7DD559B7A417}。 这是客户端扩展如何标识和验证内部元素的类型是驱动器

禁用

禁用属性是可选属性驱动器内部元素。 该属性使用数字字符串来表示一个布尔值。 如果值为 1 表示 true,并且值为 0 指示 false。

一个驱动器与内部元素禁用属性为 true 指示配置禁用该内部元素。 这会阻止组策略驱动器映射扩展处理该配置文件中的内部元素。 一个禁用属性为 false 指示配置中启用了该内部元素并处理将继续正常进行。

一个驱动器没有内部元素禁用属性指示内部元素永远不会被禁用。 在这种配置的默认值为禁用属性为 false,这意味着启用内部元素,并且处理将继续正常进行。 禁用特性出现在配置第一次内部的元素被禁用且仍保留在其余部分的配置文件生存期的配置。 一次在配置中,该属性的值是使用各自的配置,更改但永远不会移除。

映像

图像属性是一个数字字符串值,表示组策略管理编辑器中用作图标的位图资源的索引用于在编辑器中显示该首选项的映像。 数值字符串的值通常对应的值操作属性中属性元素。

图像值

操作值

0

C

1

R

2

U

3

D

名称

Name 属性是一个表示该首选项的显示名称的字符串值。 Name 属性对首选项的处理没有任何影响和严格用于管理和报告。

removePolicy

RemovePolicy属性是可选属性驱动器内部元素。 该属性使用数字字符串来表示一个布尔值。 值为 1 表示 true,值为 0 表示 false。

一个驱动器与内部元素removePolicy属性为 true 指示是否承载该驱动器映射首选项的组策略对象不在用户作用域内,组策略驱动器映射扩展应删除驱动器映射。 承载该驱动器映射首选项不再应用于用户的组策略对象,组策略驱动器映射扩展会删除基于驱动器号条件的驱动器映射。

RemovePolicy属性的值与相关操作属性中属性元素。 一个驱动器与内部元素removePolicy属性等于 true 要求值为操作属性属性元素为等于大写 R.

一个驱动器与内部元素removePolicy属性为 false 指示扩展应原样保留现有的映射的驱动器因项配置驱动器映射首选项。

一个驱动器没有内部元素removePolicy属性指示内部元素已被配置为删除不再应用时。 在这种配置的默认值为removePolicy属性为 false,这意味着从驱动器映射首选项生成的所有映射驱动器保留都原来的配置。 RemovePolicy特性出现在第一次内部的元素被配置为不再应用时删除项目的配置。 一次在此配置中,该属性的值与每个相应的配置更改但永远不会移除。

状态

状态属性是表示组策略首选项编辑器可以在 Microsoft 管理控制台的状态区域中显示一条消息的字符串值。 状态属性仍将作为配置的一部分 ; 但是,不能再在积极地实现。

Uid

Uid属性是一个 128 位标识符表示为全局唯一标识符 (GUID)。 Uid值唯一地标识每个内部元素。 这是客户端扩展如何标识和区分每个驱动器内部元素。

UserContext

UserContext属性是可选属性驱动器内部元素。 该属性使用数字字符串来表示一个布尔值。 值为 1 表示 true,值为 0 表示 false。

具有一个驱动器内部元素userContext属性为 true 指示组策略驱动器映射扩展应创建映射的驱动器使用当前用户的安全上下文。 一个驱动器与内部元素removePolicy属性为 false 指示扩展应创建映射的驱动器使用本地系统的安全上下文。

一个驱动器没有内部元素userContext属性指示已手动配置内部的元素为当前用户的安全上下文中应用。 在此配置中,默认值在使用计算机首选项的简单的指导原则将本地的系统和用户首选项的项在当前用户的安全上下文中运行的安全上下文中运行每个策略的基础上而异。

UserContext特性出现在配置第一次内部元素手动配置要应用使用当前用户的安全上下文。 一次在此配置中,该属性的值与每个相应的配置更改但永远不会移除。

UserContext属性仍将作为配置的一部分 ; 但是,不能再在积极地实现。 大部分的组策略首选项扩展以编程方式切换当前用户和根据需要,而不管的系统的安全上下文之间userContext属性的内部元素配置中存在的值。 推荐的配置是可保留为默认值的每个首选项并不手动配置首选项的任何步骤的安全上下文。

<Drive clsid="{935D1B74-9CB8-4e3c-9914-7DD559B7A417}" name="Map Drive F:" status="F:" image="2" changed="2013-03-26 14:56:38" uid="{CABDD26A-E1E7-412F-A6B5-CE20F9A8E1D4}">

每个内部的元素需要的配置文件中的属性元素。 组策略首选项扩展读取首选项配置的属性元素。

属性元素共享在组策略首选项内部元素的所有类之间的唯一和公共属性。 公共属性来表示内部元素类 (首选项) 此类创建、 删除或更新所提供的抽象功能特征。 但是,这些操作的实现会随每个内部元素。

操作

操作属性是在一个可选的字符串属性属性元素用来描述的组策略驱动器映射扩展不执行相关联的内部元素的操作。 操作属性值是单个,大写字母的字母 C、 R、 U 或 d。 如果操作属性的中不存在属性元素然后的默认值为 u。

创建

操作相加大写 C 的属性值指示要创建新的驱动器映射在当前使用的设置的组策略驱动器映射扩展驱动器内部元素。

创建操作具有以下两种基于中值的行为属性。值等于 1,创建操作创建新的驱动器映射仅当当前用户不具有映射中配置的值相匹配的值的活动驱动器号字母属性。 新创建的驱动器映射时将使用配置中的驱动器号值字母属性。

如果当前用户拥有现有驱动器映射使用字母属性中配置的值的扩展插件将忽略该指令,并不会报告错误。

值等于 0,创建操作创建新的驱动器映射仅当当前用户不具有映射到的值匹配的文件共享的活动驱动器号路径属性。 新创建的驱动器映射使用从配置中的字母值开始的第一个可用的驱动器号字母属性。

如果当前用户拥有现有驱动器映射到与路径属性的值匹配的文件共享扩展插件将忽略该指令,并不报告错误。

创建操作已成功创建新映射的驱动器号后, 还将设置中配置的值所基于的驱动器字母可见thisDrive属性。

delete

操作相加大写 D 的属性值指示要删除现有驱动器映射在当前使用的设置的组策略驱动器映射扩展驱动器内部元素。

删除操作具有以下两种基于中值的行为属性。属性值等于 1,则删除操作只有在当前用户有映射中配置的值相匹配的值的活动驱动器号时可消除映射的驱动器字母属性。

如果当前用户不具有现有驱动器映射使用字母属性中配置的值的扩展插件将忽略该指令,并不报告错误。

属性值等于 0,则删除操作可消除等于中的值的驱动器号开头的所有现有映射的驱动器字母一直到字母 Z (包括这两者) 的属性。

该扩展插件将跳过当前未映射到共享位置并不会报告这些驱动器号的错误的任何驱动器号。 该扩展插件将跳过的驱动器号映射到物理设备,但在尝试删除驱动器号与物理设备相关联时报告错误。

替换

操作相加大写 R 的属性值指示要替换现有驱动器映射为在当前设置的组策略驱动器映射扩展驱动器内部元素。 替换操作指示要首先,执行删除操作的扩展插件,然后创建操作。 删除指令中移除使用本文档的删除部分中确定的条件的现有映射的驱动器。 创建指令会创建新的映射的驱动器使用本文档的创建部分中确定的条件。 替换操作的结果为提供的角度看扩展覆盖与映射驱动器相关联的所有设置。

更新

操作相加大写 U 的属性值指示要使用在当前配置的设置更新现有驱动器映射的组策略驱动器映射扩展驱动器内部元素。

更新操作都有以下两种基于中值的行为属性。值等于 1,更新操作更新现有驱动器映射仅当当前用户具有映射中配置的值相匹配的值的活动驱动器号字母属性。

如果当前用户没有现有驱动器映射使用字母属性中配置的值则扩展调用创建操作来创建新的映射的驱动器使用在当前配置的设置驱动器内部元素。

一个空路径属性值将导致要在尝试创建一个新映射的驱动器时报告错误的扩展插件。

一个属性值为 0 将导致要执行以下两种行为的扩展插件。 一个空路径属性值指示要在所有现有的驱动器号开头等于中的值的驱动器号上执行更新的扩展插件字母属性 (包括这两者) 和结束有驱动器盘符 Z。

更新部分的这个方面不跳过物理驱动器盘符。 因此,更新操作可以明显更改和标签物理以及映射的驱动器号的选项。

这种配置第二个可能的操作发生时属性值等于 0 和路径属性值包含远程文件共享的 UNC 路径。 此配置指示要搜索现有的驱动器号开头等于中的值的驱动器号的扩展插件字母属性 (包括这两者) 并执行更新上的驱动器号映射的网络位置与配置中的值相匹配的驱动器号路径属性。

请务必了解组策略驱动器映射扩展插件不能更新位置、 重新连接或连接作为 (可选) 设置。 配置为替换,以修改这些驱动器映射设置该首选项操作。

<Properties action="C" path="\\server\share" useLetter="1" letter="F"/>

allDrives

AllDrives属性是可选属性属性元素,用于根据它们在 Windows 资源管理器中显示通过组策略驱动器映射扩展配置的所有物理和映射的驱动器号的可见性。 AllDrives属性值是使用所有大写字符表示的字符串值。 可接受的值allDrives属性包括 NOCHANGE、 隐藏和显示。

NOCHANGE 值指示扩展插件不能更改驱动器号的当前用户的所有驱动器的可见性。 因此,在扩展完成后的扩展插件进程之前可见的驱动器号保持可见。 为隐藏的驱动器号观察到相同的行为。

隐藏值指示要隐藏所有当前用户的所有驱动器的驱动器号的扩展插件。 此配置的结果将隐藏物理和映射,在 Windows 资源管理器视图中的所有驱动器号。

显示值指示要显示的当前用户的所有驱动程序的所有驱动器号的扩展插件。 此配置的结果显示物理和映射,在 Windows 资源管理器中的所有驱动器号。

请记住,驱动器的可见性和标签超出映射的驱动器号和包括物理驱动器号。

AllDrives属性结合使用时thisDrive属性通过提供不同的配置排列。 务必记住thisDrive属性值的优先级高于allDrives属性值,但仅限中配置的驱动器号字母属性的值为属性元素。

默认值为allDrives属性是 NOCHANGE。

Cpassword

Cpassword 属性是用来存储密码成功连接配置映射的驱动器所需的属性元素中的一个可选字符串属性。 属性值是密码的不明确使用 AES 派生的加密密钥的字符串表示。 Cpassword 属性的默认值是空字符串,或者为空。

标签

标签属性是用于指定可以在 Windows 资源管理器和如 NET 的 Windows 实用程序中查看的映射驱动器上配置说明的属性元素中的一个可选字符串属性。EXE。 属性值接受任何中任一上限的字母数字字符或可打印的符号字符或小写。

字母

该字母属性为接受单个大写形式的字母字符值的属性元素中的必需的属性。 该扩展将该字母属性用作对特定的驱动器号或驱动器号的范围的开始点的引用。 该扩展插件将字母属性值的解释取决于书属性的值。

书属性值为 0 会导致扩展插件将视为以字母 Z 将停止的大写形式字母的范围中的开始字母的字母属性值。 书属性值为 1 会导致要将字母属性值视为一个单一的特定驱动器号的扩展插件。

路径

路径属性是一个接受字符串值的通用命名约定 (UNC) 路径,到共享的网络文件夹的属性元素中的必需的属性。

Create、 替换和更新操作将此值用作扩展应的驱动器号映射到其中的目标网络位置。

此外,该扩展将路径属性值用作替代条件的更新操作时书属性的值等于 0。 此外,路径属性的值可以等于和空字符串 (空白) 时该操作值等于 u。 在更新操作期间空路径属性值会导致要在书属性的值不等于 1 时报告错误的扩展插件。

持久性

路径属性是一个接受字符串值的通用命名约定 (UNC) 路径,到共享的网络文件夹的属性元素中的必需的属性。

Create、 替换和更新操作将此值用作扩展应的驱动器号映射到其中的目标网络位置。

此外,该扩展将路径属性值用作替代条件的更新操作时书属性的值等于 0。 此外,路径属性的值可以等于和空字符串 (空白) 时该操作值等于 u。 在更新操作期间空路径属性值会导致要在书属性的值不等于 1 时报告错误的扩展插件。

持久性

持久的属性是属性元素中的可选属性。 该属性使用数字字符串来表示一个布尔值。 值为 1 表示 true 和值为 0 表示 false。

中的持久性属性 equaling true 的驱动器内部元素的属性元素指示组策略驱动器映射扩展用于创建仍继续存在用户登录和计算机重新启动之间的映射的驱动器。 Windows 会记住映射的驱动器和重新建立在以后进行的用户登录的驱动器映射。

重新启动具有持久属性为 false 的内部元素指示组策略驱动器映射扩展创建驱动器映射不会继续保留用户登录和计算机之间的驱动器中的属性元素。 Windows 不会记住映射的驱动器和重新在后续的重新启动驱动器映射不建立。

请务必了解 Windows 将在它创建映射的驱动器时配置驱动器持久性。 因此,如果您希望需要您需要更改映射的驱动器的持久状态用于替换操作。

书属性值是必需的属性属性元素。 该属性使用数字字符串来表示一个布尔值。 值为 1 表示 true 和值为 0 表示 false。

一个属性值为 false 将导致要处理的扩展插件字母作为以字母 Z 将停止的大写形式字母某个范围内的开始号属性值。 一个属性值为 true 会导致要将字母属性值视为一个单一的特定驱动器号的扩展插件。

Username

用户名属性是一个可选字符串属性中的属性元素用来存储域和成功连接所配置所需的用户名映射的驱动器。

thisDrive

Thisdrive属性是可选属性属性元素,用于配置为 Windows 资源管理器可见性字母中的属性的值属性元素。 ThisDrives属性值是表示使用所有大写字符的字符串值。 可接受的值thisDrivesNOCHANGE、 隐藏和显示包含的属性。

NOCHANGE 值指示扩展插件不能更改已配置的驱动器号为当前用户的可见性。 因此,驱动器号可见之前扩展处理并扩展完成后将保持可见。 为隐藏的驱动器号观察到相同的行为。

隐藏值指示要隐藏当前用户的配置的驱动器号的扩展插件。 此配置的结果将隐藏已配置的驱动器号、 物理或映射的情况下,从在 Windows 资源管理器中的视图。

显示值指示扩展才会显示当前用户的配置的驱动器号。 此配置的结果将显示已配置的驱动器号、 物理或映射,在 Windows 资源管理器。

请记住,驱动器的可见性和标签超出映射的驱动器号和包括物理驱动器号。

AllDrives属性结合使用时thisDrive属性通过提供不同的配置排列。 务必记住thisDrive属性值的优先级高于allDrives属性值,但仅限中配置的驱动器号字母属性的值为属性元素。

默认值为thisDrives属性是 NOCHANGE。

<Drives clsid="{8FDDCC1A-0C3C-43cd-A6B4-71A6DF20DA8C}" disabled="0"> <Drive clsid="{935D1B74-9CB8-4e3c-9914-7DD559B7A417}" name="F:" status="F:" image="0" changed="2013-04-04 16:48:16" uid="{B225E3B9-C639-4AA3-AB79-CB65D626CF9A}"> <Properties action="C" thisDrive="NOCHANGE" allDrives="NOCHANGE" userName="" path="\\server\share" label="" persistent="0" useLetter="1" letter="F"/> </Drive> <Drive clsid="{935D1B74-9CB8-4e3c-9914-7DD559B7A417}" name="G:" status="G:" image="2" changed="2013-03-26 14:56:38" uid="{CABDD26A-E1E7-412F-A6B5-CE20F9A8E1D4}"> <Properties action="U" thisDrive="NOCHANGE" allDrives="NOCHANGE" userName="" path="\\server\share" label="" persistent="0" useLetter="1" letter="G"/> </Drive> <Drive clsid="{935D1B74-9CB8-4e3c-9914-7DD559B7A417}" name="H:" status="H:" image="1" changed="2013-04-04 16:48:40" uid="{94BCBDAE-E11C-4C3A-9E05-CE1B416C1759}" disabled="0"> <Properties action="R" thisDrive="NOCHANGE" allDrives="NOCHANGE" userName="" path="\\server\share" label="" persistent="0" useLetter="1" letter="H"/> </Drives>



XML 的评估版

该扩展插件将完整的 XML 文件读入内存随后每个元素的 XML 文件开头的外部元素的进程。 外部元素定义该文件的内部元素中出现的首选项的首要类。 此外,外部元素可能包含禁用的属性。 最有效地阻止所有驱动器的内部元素 (将应用于用户) 处理 XML 的任何进一步评估的 1 中的外部元素停止一个禁用的属性值。

在阅读后驱动器元素,该扩展主要注意力转移到 XML 文件中的下一个元素 — 可能是多个驱动器的内部元素之一。 如本文档的属性部分中所述,内部元素包含元数据和处理所使用的控制信息的驱动器是组策略管理管理单元和客户端扩展。

该扩展插件从整个驱动器内部元素,其中包括的属性和值的驱动器元素、 特性和属性元素和属性的值和其所有子元素及其属性和值的可选筛选器元素的值中读取的属性和值。

一个驱动器内部元素,后者包含一个已禁用的属性为 1 将停止处理此元素 (将应用于用户) 中的扩展插件并扩展将其焦点移到下一个驱动器内部元素。

该扩展插件将继续处理当前的驱动器内部元素时它不包含禁用的属性或当它包含禁用的属性值为 0。

接下来,该扩展插件将它的关注点移动驱动器内部元素的筛选器元素上。

筛选器元素均包含该扩展将用作附加条件来确定是否 (映射驱动器) 的关联的首选项项目应该应用于用户或计算机的项目级目标信息。

筛选器元素包含属性、 值和表示的布尔值的规则的复杂集的子元素。 筛选器元素的详细信息不在文档中的此部分的讨论范围。 在此上下文中,所有需要了解是筛选器元素,当计算一个扩展,仅返回 true 或 false。

如果存在,该扩展插件读取整个筛选器元素,并在部分包含的每个布尔表达式的计算结果。 筛选器元素的评估仅可能会导致一个 true 或 false 的响应。 筛选器评估结果为 false 表示一个或多个布尔表达式计算结果为 false 的筛选器元素中。 False 求值强制要停止当前的驱动器内部元素任何进一步处理的扩展插件并将焦点移到下一个驱动器内部元素。

一个驱动器不包含筛选器的内部元素或包含计算结果为 true 的移动其焦点移到的属性元素,该驱动器内部元素中的下一个元素的元素的筛选器内部元素的内部元素的内部元素。

属性元素在驱动器的内部元素中包含扩展插件需要创建、 替换、 更新或删除映射的驱动器的所有驱动器映射的配置信息。 组策略驱动器映射扩展读取的属性和值和执行请求的指令并确定执行的操作都已成功完成。

如果执行的操作没有成功 (发生了错误),扩展将检查 bypassErrors 属性从当前的驱动器内部元素中读取的值。 值为 false ([0]) 指示要停止的所有驱动器的内部元素的进一步处理而 (一个 [1]) 一个 true 值指示要忽略不成功的结果并继续处理其他驱动器的内部元素的扩展插件的扩展插件。

该扩展则将把其焦点移到下一步的驱动器内部元素和过程重复,直到 XML 文件到达关闭的外部元素的驱动器。

XML workflow for GP Pref client-side extension

组策略驱动器映射管理管理单元中确定的值和属性存储在 XML 配置。 以下各图关联的用户界面控件哪些组件或在 XML 文件中显示的各种元素和属性。

User interface to XML mapping
Drive Map user interface to XML mapping
Common tab user interface to XML mapping

组策略客户端侧扩展启用组策略以处理各种不同的任务,因为每个客户端扩展负责处理自己的组策略对象中存储的数据相关的部分。

组策略驱动器映射客户端扩展是包含在 Windows 操作系统从 Windows Server 2008 和 Windows Vista Service Pack 1 开始的 gpprefcl.dll 文件中包含的多个扩展插件之一。

组策略模块化设计使每个扩展插件来处理与它们相关的数据。 因此,每个组策略客户端扩展的实现可能会有所不同。

组策略驱动器映射扩展是一系列的组策略客户端侧扩展称为组策略首选项中的一个 CSE。 这一功能扩展旨在管理与网络的特定共享的文件夹和驱动器盘符 (远程映射的驱动器或物理) 的可见性属性相关联的驱动器号。 Windows 操作系统通过 CSE 特定元数据存储在以下注册表位置中运行时已注册该扩展插件

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions\{5794DAFD-BE60-433f-88A2-1A31939AC01F}

在此位置中存储的信息是在所有计算机上一致的。 因此,还原丢失的计算机上的信息是相对容易使用注册表编辑器的导出和导入功能。

遇到使用组策略驱动器映射配置组策略对象时,组策略服务调用此客户端扩展。 激活时,该扩展插件必须找到其配置文件。

组策略将调用客户端扩展,它提供了使其能够处理自己的组策略相关的部分的扩展信息。 此信息包括描述当前处理的上下文此类像处理是背景或前景、 是一种通过慢速链接,发生处理或是一种计算机而不是用户处理的操作信息。 也包括在此信息是从应用程序作用域和组策略对象所做的更改的列表中删除的组策略对象的列表。

组策略对象的列表中的每个条目提供客户端对端扩展提供有关所述的组策略对象的信息。 该条目包括 REF _Ref355711892 \h 表 2 中的信息。

字段

说明

选项

客户端侧扩展使用选项字段来确定是否禁用组策略对象或如果组策略对象

版本

组策略对象版本号增加后与已保存的更改到 GPO 的计算机和用户部分分别。 客户端侧扩展可以使用的版本号确定到 GPO 的计算机或用户部分已进行了任何更改。

DSPath

DS 路径提供的 LDAP 路径,它提供的位置和常见的 Active Directory 中的组策略对象的名称。 请记住,GPO 的公用名是它的唯一标识符 ;不是其显示名称。

文件系统路径

文件系统路径提供与组策略对象关联的文件的根位置。 这些文件的集合通常由一个或多个客户端侧扩展的数据存储区的组策略设置。

链接路径

链接路径字段提供了组策略链接到的容器的 LDAP 路径

链接类型

链接类型字段提供的容器 (如计算机、 站点、 域或组织单位 GPO 链接到的有关信息。

Extensions

分机号字段提供组策略对象中配置的扩展插件的列表。

显示名称

显示名称是在用户界面和报告工具中显示的 gpo 的名称。

REF _Ref355711892 \h 表 2 中的信息是为每个 GPO 存在于这两个列表。 超出范围列表包含应用于用户的 Gpo 的列表或计算机上的组策略的最后一个应用但不再应用组策略的此应用程序上。 已更改的列表的列表包含包括的组策略对象的一个或多个方面的更改的 Gpo 的列表。

该扩展插件读取操作的信息来了解执行哪种类型的组策略处理窗口: 用户或计算机。 如何发生处理: 前景色或背景。 这使客户端侧扩展,做出基于此处理特征的可行性决策。

该扩展插件使用组策略对象的列表来完成自己的组策略处理相关的部分。 组策略驱动器映射扩展插件首先处理每个范围外列表中的 Gpo。

组策略驱动器映射按顺序处理范围外的 Gpo 的完整列表。 扩展日志中读取组策略对象的任何错误并继续处理直至到达列表末尾。

该扩展插件进行循环的开头在列表中的第一项列表中的组策略对象列表。 该扩展插件收集有关当前 GPO 的系统必备信息。 从这些信息和其自己的信息,该扩展插件生成到配置文件的文件路径位置。 配置文件位置路径开头的扩展历史记录路径。

历史记录路径是为每个组策略对象的最后一个成功应用的数据配置文件的本地数据存储。 该扩展插件将最后一个已应用的配置文件保存在保存一个值等效于在 Windows 8 和 Windows Server 2012 上环境变量 %LOCALAPPDATA%的用户的本地应用程序文件夹中。 历史记录文件夹的根目录中看起来类似于

C:\users\[username]\AppData\Local\Microsoft\Group Policy\History

Windows 保护具有隐藏的属性 ; 历史记录文件夹因此,默认情况下,不从 Windows 资源管理器或命令行中可见。 历史记录文件夹包含子文件夹,其中每个文件夹命名为相应的组策略对象的全局唯一标识符 (GUID)。

Windows Explorer view of the local history folder

在历史记录文件夹中的每个组策略对象文件夹包含其中每个文件夹命名为相应安全标识符 (SID) 已登录到当前计算机的用户的子文件夹。 为组策略驱动器映射扩展插件的历史记录文件的完整路径是

C:\users\[username]\AppData\Local\Microsoft\Group Policy\History\[GUID]\SID\Preferences\Drives\Drives.xml

该扩展插件然后再连接到 GPO 的文件系统路径的末尾字符串 \User\Preferences\Drives\Drives.xml。 这将创建完整的路径,包括文件名为配置文件。

System_CAPS_note注意

Windows 仅允许配置和应用到用户的组策略驱动器映射。

扩展打开此文件并将该文件的全部内容读入内存,然后关闭该文件。 CSE 记录发生的与文件操作可能会发生并将移动到下一步的 GPO 列表中的任何错误。

配置文件包含具有其中每个内部的元素都表示不同的驱动器映射首选项的多个内部元素的外部元素。 每个内部元素包括一个包含配置信息的各个元素的属性元素。

该扩展插件首先设置它主要侧重于第一个内部元素。 该扩展插件会扫描 removePolicy 属性当前的内部元素。 一个内部元素,而无需 removePolicy 属性或具有某个 removePolicy 属性值为 false ([0]) 的原因要将移至下一步的内部元素的扩展插件的内部元素。

具有 removePolicy 属性为 true (一个 [1]) 的内部元素指示扩展它必须在当前的内部元素中删除设置。 该扩展插件使用从当前的内部元素和其相关联的属性元素的设置来撤消,或删除的设置。 该扩展插件实现此目的通过强制处理要使用删除操作而不考虑当前的内部元素中配置的操作并继续此循环直至它已处理配置文件中的所有内部元素。 所有内部元素的处理完成后,该扩展插件从本地历史记录删除的 \Drives\Drives.xml 文件夹和文件的特定用户和 GPO。

该扩展插件然后将移动到列表中的下一步的组策略对象,并以相同的方式进行处理,直到它已经处理了超出范围列表中的所有 Gpo。 该扩展插件将开始处理新增功能和更改 GPO 列表。

组策略驱动器映射按顺序处理新增功能和更改 Gpo 的完整列表。 扩展日志中读取组策略对象的任何错误并继续处理直至到达列表末尾。

该扩展插件进行循环的开头在列表中的第一项列表中的组策略对象列表。 该扩展插件收集有关当前 GPO 的系统必备信息。 通过此信息,该扩展插件生成到配置文件的文件路径位置。 配置文件位置路径开始处的 GPO 的文件系统路径。 该扩展插件然后再连接到 GPO 的文件系统路径的末尾字符串 \User\Preferences\Drives\Drives.xml。 这将创建完整的路径,包括文件名为配置文件。

System_CAPS_note注意

Windows 仅允许配置和应用到用户的组策略驱动器映射。

该扩展插件将整个配置文件读入内存。 配置文件包含具有其中每个内部的元素都表示不同的驱动器映射首选项的多个内部元素的外部元素。 每个内部元素包括一个包含配置信息的各个元素的属性元素。

该扩展插件的计算结果为禁用的属性的外部元素。 具有已禁用属性为 true (一个 [1]) 的外部元素指示所有内部元素均被视为已禁用。 该扩展插件会停止处理的当前配置的任何部分并将移动到下一步的组策略对象列表中。 外部元素没有禁用的属性或为禁用的属性值为 false (零 [0]) 将通过评估内部元素,来继续进行处理

该扩展插件首先设置它主要侧重于第一个内部元素。 该扩展插件的计算结果为禁用的属性的当前内部元素。 具有已禁用属性为 true (一个 [1]) 的内部元素指示禁用内部元素。 该扩展插件会停止处理当前的内部元素并将移至下一步的内部元素。 而无需禁用的属性或具有禁用的属性值为 false ([0]) 的内部元素的内部元素将继续评估项目级目标信息的内部元素。

项级目标处理

该扩展插件将扫描当前筛选器元素的内部元素。 筛选器元素是可选元素,它包含每个内部元素的项目级目标配置信息。 现有的内部元素中的筛选器元素指示扩展插件必须在处理内部元素配置之前评估一个或多个布尔值条件。 False 从筛选器评估结果会强制要忽略当前的内部元素,并将移至下一步的内部元素的扩展插件。 从筛选器评估 true 结果指示扩展应继续进行处理的内部元素和在当前元素中配置的操作。

操作处理发生后客户端扩展已评估会指示它绕过处理外部或当前的内部元素的所有其他条件。 操作处理与每个内部元素 (表示的内部元素表示的单个的首选项的提醒) 中配置的操作相关联。 创建组策略驱动器映射扩展可以处理的四个操作、 替换、 更新和删除。

创建操作表示扩展插件在其中创建新的映射的驱动器基于当前的内部元素中配置的配置。

序言

扩展提取的值对于 < 路径 >,< 号 >,< 持久 > < 用户名 > 和 < cPassword > 属性中的配置信息。 如果 < cPassword > 属性包含一个值,然后扩展反向-对进行模糊处理密码到其等效的明文。 该扩展插件将继续提取 < allDrives > 这些值 < thisDrive > 和 < 书 > 属性。 该扩展插件通过模拟使用用户的完整的身份验证令牌的计算机上的日志记录的用户完成处理的序言部分。 尝试模拟任何失败会导致在中止其处理的扩展中和以返回模拟失败所导致的基础错误代码。

核心

核心阶段创建操作处理是使用在序言阶段中读取的配置信息来创建为当前用户的映射的网络驱动器。

特定的驱动器号

扩展将检查是否 < 书 > 属性的值等于 true (一个 [1])。 True 值确定所需的配置适用于特定的驱动器号。

扩展开始通过确保在所有较低的情况下将被规范化的驱动器号和其语法与匹配 [驱动器号:]。 在规范化过程中遇到的任何故障会导致中止并返回无效的参数错误的扩展插件。

该扩展插件使用 Windows API WNetGetConnection 来确定通过现有的映射的网络驱动器或物理设备 (如硬盘、 CD-ROM/DVD-ROM、 ram 磁盘或可移动驱动器,是否当前使用 < 字母 > 的值。

一个 < 字母 > 值,当前用户存在,但不是映射的驱动器或不被视为物理设备会导致扩展要中止其过程和返回意外的错误。 当前不是将映射到共享的网络文件夹或与物理设备关联会导致要中止其处理并返回的对象名称的扩展插件的用户存在一个 < 字母 > 值存在错误。

创建映射的网络驱动器

该扩展插件确定是否当前用户的令牌不是受限的令牌和 < 持久性 > 属性值等于 false ([0])。 在验证这些因素,该扩展插件使用 WNetUseConnection API 来创建新映射的驱动器为驱动器号使用 < 字母 > 属性的值。 用于映射的驱动器的共享的文件夹是 < 路径 > 属性的值。 如果 < 用户名 > 和 < cPassword > 属性包含值,则其各自的值是用于身份验证和授权到共享文件夹的连接的凭据。 此外,< 持久性 > 属性值传递给 Windows API 以指示新创建的映射的驱动器是否应登录和重新启动之间保持不变。

来自 Windows API 的成功响应指示要中止其处理并返回它接收到来自 Windows API 的基础错误代码的扩展插件。 从 Windows API 成功的响应会指示要编写"已连接...同名访问"的扩展插件 写入跟踪日志中。

如果该扩展插件确定当前用户的令牌是受限的令牌 (启用用户帐户控制) 则该扩展插件必须先创建映射的驱动器下受限的令牌而不是完全的令牌。 本部分说明为什么针对管理员和某些用户的映射的驱动器并不总是在 Windows 资源管理器中可见。

该扩展插件将停止模拟当前用户的完整令牌与用户并请求 Windows 来为用户提供受限的令牌。 模拟终止中的出现任何失败指示要中止其处理、"无法将用户的完整令牌从还原"写入跟踪日志中,并返回是未能停止模拟的结果的基础错误代码的扩展插件。 当前用户的受限的令牌请求中出现任何失败指示要中止其处理的扩展插件、 写入"无法模拟使用用户的受限令牌"向跟踪日志中,并返回是失败使用受限的令牌进行模拟的结果的基础错误代码。

尽管模拟 WNetUseConnnection API 以创建一个新的使用限制的令牌的扩展插件使用的用户映射的驱动器的驱动器号的使用位置是 < 字母 > 属性的值。 用于映射的驱动器的共享的文件夹是 < 路径 > 属性的值。 如果 < 用户名 > 和 < cPassword > 属性包含值,则其各自的值是用于身份验证和授权到共享文件夹的连接的凭据。 此外,< 持久性 > 属性值传递给 Windows API 以指示新创建的映射的驱动器是否应登录和重新启动之间保持不变。

不成功的响应会指示要中止其处理的扩展插件以及它从 Windows API 接收到跟踪日志的基础错误代码编写"无法将驱动器连接使用受限令牌"。 从 Windows API 成功的响应会指示要编写"已连接...同名访问"的扩展插件 写入跟踪日志中。 然后,该扩展插件终止了模拟当前用户在受限令牌并返回模拟用户使用完整的令牌。

从模拟的用户使用受限令牌恢复失败会导致要写入跟踪日志的"Failed to 恢复受限制的上下文中的用户"的扩展插件。 故障模拟具有其完整的标记的用户会导致要写入跟踪日志的"Failed to 模拟使用用户的完整令牌"的扩展插件。 该扩展插件通过将已配置的标签应用于新创建的映射驱动器将继续处理。

第一个可用的驱动器号开头

< 书 > 属性值 equaling false ([0]) 确定所需的配置是创建使用第一个可用的驱动器号开头 < 字母 > 属性值的映射驱动器。

确定第一个可用的驱动器号

该扩展插件需要用来确定第一个可用的驱动器号之前它可以将映射网络的任何位置。 若要完成此操作,这些扩展创建小写字母开头 < 字母 > 属性的值和以字母 z 结尾的列表。 该扩展插件然后循环访问每个字母的字母来确定第一个可用的驱动器号,开头 < 字母 > 属性的值列表中。

该扩展插件确定字母数据被称为可用首先通过使用 WNetGetConnection API 来确定是否在列表中的字母的当前字母是映射到网络驱动器或与物理设备相关联。

在不使用的驱动器号

不映射到共享文件夹的驱动器号指示要检查以前可用的驱动器号先前已经保存的扩展插件。 如果该扩展已经知道的第一个可用的驱动器号,比它在当前的驱动器号上执行任何其他操作并再次使用列表中的下一步字母开始计算。 如果该扩展不知道的任何以前保存的可用的驱动器号,然后可确保当前的字母不与物理设备相关联。 与物理设备相关联的驱动器号不合格作为可用的驱动器号。 扩展插件在当前的驱动器号上执行任何其他操作,并再次使用列表中的下一步字母开始计算。 对此过程的一部分进行的驱动器号已通过成为第一个可用的驱动器号所需的所有条件。

使用映射的驱动器的驱动器号

映射到共享文件夹的驱动器号指示扩展插件来评估现有的映射驱动器为 < 路径 > 属性的值在内部元素配置的共享的文件夹位置。

如果该共享的文件夹路径匹配 < 路径 > 属性值,该扩展插件会认为已成功创建的映射的驱动器。 扩展就会写入"路径已经连接上字母"以及到跟踪日志中,当前的驱动器盘符中止循环访问的驱动器号,并继续执行核心处理阶段的驱动器标签部分。

如果共享的文件夹的路径与 < 路径 > 属性值不匹配,然后该扩展插件将考虑当前的驱动器盘符不可用。 扩展插件在当前的驱动器号上执行任何其他操作,并再次使用列表中的下一步字母开始计算。

此扩展插件完成其迭代通过驱动器号列表和验证可用的驱动器号退出。 如果仍不知道该扩展插件的可用驱动器号和它找不到现有驱动器号映射到 < 路径 > 属性值与相同的网络路径然后该扩展插件将中止其处理,并返回未连接的错误。 否则为该扩展插件能够感知的可用的驱动器号,现在必须连接到可用的驱动器号共享的网络文件夹。

连接到第一个可用驱动器

该扩展插件必须创建新的映射的驱动器使用已发现的第一个可用的驱动器号和 < 路径 > 属性的值。 若要执行此操作,该扩展插件确定由当前用户和 < 持久 > 属性的值使用的令牌的类型。

如果用户具有完全的令牌或者 < 持久性 > 属性等于 false (零个 [1]),则要创建一个新的 WNetUseConnection API 映射的驱动器其中使用的驱动器号是已发现的第一个可用的驱动器号的扩展插件使用。 用于映射的驱动器的共享的文件夹是 < 路径 > 属性的值。 如果 < 用户名 > 和 < cPassword > 属性包含值,则其各自的值是用于身份验证和授权到共享文件夹的连接的凭据。 此外,为 false 的 < 持久性 > 属性值传递给 Windows API 以指示新创建的映射的驱动器是否应登录和重新启动之间保持不变。

如果用户具有完全的令牌或者 < 持久性 > 属性等于 false (零个 [1]),则要创建一个新的 WNetUseConnection API 映射的驱动器其中使用的驱动器号是已发现的第一个可用的驱动器号的扩展插件使用。 用于映射的驱动器的共享的文件夹是 < 路径 > 属性的值。 如果 < 用户名 > 和 < cPassword > 属性包含值,则其各自的值是用于身份验证和授权到共享文件夹的连接的凭据。 此外,为 false 的 < 持久性 > 属性值传递给 Windows API 以指示新创建的映射的驱动器是否应登录和重新启动之间保持不变。

来自 Windows API 的成功响应指示要中止其处理并返回它接收到来自 Windows API 的基础错误代码的扩展插件。 从 Windows API 成功的响应会指示要编写"已连接...同名访问"的扩展插件 写入跟踪日志中。

具有受限的令牌 (已启用的用户帐户控制) 的用户指示该扩展插件还必须创建新的驱动器映射在模拟使用用户的受限的令牌的用户时。

该扩展插件将停止模拟当前用户的完整令牌与用户并请求 Windows 来为用户提供受限的令牌。 模拟终止中的出现任何失败指示要中止其处理、"无法将用户的完整令牌从还原"写入跟踪日志中,并返回是未能停止模拟的结果的基础错误代码的扩展插件。

当前用户的受限的令牌请求中出现任何失败指示要中止其处理并返回请求限制的令牌时是到失败的结果的基础错误代码的扩展插件。

仅当扩展插件使用模拟用户的受限制的令牌原因扩展要中止其处理时出现故障的情况下,写入"无法模拟使用用户的受限令牌"向跟踪日志中,并返回是失败使用受限的令牌进行模拟的结果的基础错误代码。

尽管模拟 WNetUseConnnection API 以创建一个新的使用限制的令牌的扩展插件使用的用户映射的驱动器的驱动器号的使用位置是 < 字母 > 属性的值。 用于映射的驱动器的共享的文件夹是 < 路径 > 属性的值。 如果 < 用户名 > 和 < cPassword > 属性包含值,则其各自的值是用于身份验证和授权到共享文件夹的连接的凭据。 此外,< 持久性 > 属性值传递给 Windows API 以指示新创建的映射的驱动器是否应登录和重新启动之间保持不变。

不成功的响应会指示要中止其处理程序,将"无法将驱动器连接使用受限令牌"写入跟踪日志中连同收到来自 Windows API 的基础错误代码的扩展插件。 从 Windows API 成功的响应会指示要编写"已连接...同名访问"的扩展插件 写入跟踪日志中。 然后,该扩展插件终止了模拟当前用户在受限令牌并返回模拟用户使用完整的令牌。

从模拟的用户使用受限令牌恢复故障情况下要写入跟踪日志的"Failed to 恢复受限制的上下文中的用户"的扩展插件。 故障模拟具有其完整的标记的用户会导致要写入跟踪日志的"Failed to 模拟使用用户的完整令牌"的扩展插件。 该扩展插件通过将已配置的标签应用于新创建的映射驱动器将继续处理。

驱动器标签

到这一点在过程中,该扩展插件已成功创建使用特定的驱动器号或第一个可用的驱动器号映射的网络驱动器。 并扩展已映射的驱动器使用用户的完全令牌和限制的令牌,如果需要。

该扩展插件需要将 < 标签 > 属性值应用到新创建的驱动器号。 该扩展可确保值为 < 标签 > 属性存在且新创建的映射的驱动器和不是现有的本地或远程驱动器号。 一旦扩展确认这些条件,将用磅 (#) 字符替换 < 路径 > 属性的值中的所有反斜杠 (\) 字符。 接下来,扩展插件创建一个使用已修改 < 路径 > 值下的注册表项

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Mountpoints2

扩展插件创建一个名为 _LabelFromReg 的新注册表值。 分配给 _LabelFromReg 的值是原始、 未修改 < 路径 > 属性值。 该扩展插件将忽略任何驱动器标签处理过程中可能出现的故障。

隐藏或显示驱动器

组策略驱动器映射扩展可以显示或隐藏驱动器使用两种配置。 它可以隐藏或显示一个单一的指定驱动器号和它可以隐藏或显示所有驱动器号。 该扩展插件首先处理所有驱动器,并最后指定驱动器。 因此,在指定的驱动器配置中配置这两个结果的结果具有对所有驱动器配置的优先级。

扩展插件确定它是否需要显示或隐藏任何驱动器号通过检查 < thisDrive > 和 < AllDrives > 属性值。 如果两者的属性值等于"NOCHANGE 则该扩展插件会执行任何其他操作并处理核心处理的 epilog 部分。 否则,该扩展插件将开始隐藏或显示驱动器过程通过将更改为到系统的安全上下文。 将更改为系统安全上下文中的出现任何失败会导致要中止其处理并返回基础的错误导致失败的扩展插件。

所有驱动器

该扩展插件确定它是否需要隐藏或通过评估 < AllDrives > 属性的值来显示所有驱动器号。 如果该属性的值等于"显示"然后扩展 NoDrives 注册表值从删除以下注册表配置单元的当前用户。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

如果该属性的值等于"隐藏"扩展对上面提及的注册表配置单元的当前用户 (如果不存在该扩展插件创建 NoDrives 注册表值) 的 NoDrives 注册表值写入 0x03FFFFFF 的十六进制值。 然后,此扩展插件进程隐藏或显示其设置特定的驱动器号。

指定的驱动器

扩展验证 < thisDrive > 属性等于"显示"隐藏"。 接下来,该扩展插件验证 < 字母 > 属性值不为空。 如果 < 字母 > 属性值为空,该扩展插件将中止其处理并返回无效的参数错误。

该扩展插件从以下注册表配置单元的当前用户检索 NoDrives 注册表值

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

该扩展插件使用基于 Microsoft 知识库文章 231289,使用组策略对象以隐藏指定的驱动器中的信息的算法来确定 < 字母 > 属性值的等效的位值。

如果 < thisDrive > 属性值等于"隐藏"扩展会使 NoDrives 注册表值中的该位。 如果 < thisDrive > 属性值等于"显示"扩展插件将禁用 NoDrives 注册表值中的位。

修改后的 NoDrives 注册表值,扩展将检查其值以确保不等于零 (0)。 如果新计算的 NoDrives 注册表值为零,该扩展插件会删除 NoDrives 注册表值。 否则,该扩展插件会将新计算的 NoDrives 注册表值保存到注册表中。

尾声

该扩展完成处理通过更新其 %lastdrivemapped%环境变量和通过安全地删除 < cPassword > 属性值的明文形式实例。 此外,如果 < 持久性 > 属性值等于 true (一个 [1]),然后为下一步的前台处理必须是同步的组策略基础结构的扩展插件信号。

创建操作完成处理后。 该扩展插件将移到下一步的内部元素 (首选项) 并开始处理新的、 当前的内部元素上的内部元素。

删除操作表示其中扩展中删除所有映射的驱动器或特定的映射的驱动器基于当前的内部元素中的配置的配置。

序言

扩展提取的值对于 < 路径 >,< 号 >,< 持久 > < 用户名 > 和 < cPassword > 属性中的配置信息。 如果 < cPassword > 属性包含一个值,然后扩展反向-对进行模糊处理密码到其等效的明文。 该扩展插件将继续提取 < allDrives > 这些值 < thisDrive > 和 < 书 > 属性。 该扩展插件通过模拟使用用户的完整的身份验证令牌的计算机上的日志记录的用户完成处理的序言部分。 尝试模拟任何失败会导致在中止其处理的扩展中和以返回模拟失败所导致的基础错误代码。

核心

Delete 操作处理的核心阶段是使用在序言阶段中读取的配置信息来标识和删除特定映射的驱动器,或若要删除所有映射的驱动器以当前用户的特定驱动器号开头。

特定的驱动器号

扩展将检查是否 < 书 > 属性的值等于 true (一个 [1])。 True 值确定所需的配置适用于特定的驱动器号。

扩展开始通过确保在所有较低的情况下将被规范化的驱动器号和其语法与匹配 [驱动器号:]。 在规范化过程中遇到的任何故障会导致中止并返回无效的参数错误的扩展插件。

一个 < 字母 > 值,当前用户存在,但不是映射的驱动器或不被视为物理设备会导致扩展要中止其过程和返回意外的错误。

当前存在该用户并且与物理设备相关联的 < 字母 > 值会导致要中止其处理并返回已分配的错误的扩展插件。

删除映射的驱动器

当前存在的用户并远程连接到网络共享的 < 字母 > 值会导致要使用 Windows API WNetCancelConnection2 来从用户的会话中删除的连接和其持久状态的扩展插件。

如果 Windows API 失败来删除映射的驱动器,然后该扩展插件将中止其处理并返回它接收到来自 Windows API 的基础错误。 从 Windows API 成功的响应会导致扩展插件可前进到 epilog 阶段。

删除所有开头

< 书 > 属性值为 false (零 [0]) 确定所需的配置是删除所有映射的驱动器开头开头 < 字母 > 属性值。

扩展插件创建一个小写字母开头 < 字母 > 属性值和以字母 z 结尾的列表。 该扩展插件循环访问列表以确定是否该驱动器映射到使用 WNetGetConnection Windows API 的共享的网络文件夹中的每个字母。

如果该扩展插件确定当前的驱动器盘符未映射到共享的网络文件夹,然后完成当前迭代并开始新的集成使用列表中的下一个驱动器号为当前的驱动器号。

如果该扩展插件确定当前的驱动器号映射到共享的网络文件夹,然后它使用 Windows API WNetCancelConnection2 来从用户会话中删除连接和其持久状态。 然后,该扩展插件完成当前迭代并开始新的迭代使用列表中的下一个驱动器号为当前的驱动器号。

此周期完成之前该扩展插件已评估通过字母 z 的 < 字母 > 属性值开头的所有驱动器号。 扩展则将继续进行到尾声阶段中。

尾声

该扩展插件通过安全地删除 < cPassword > 属性值的明文形式实例完成处理。 此外,如果 < 持久性 > 属性值等于 true (一个 [1]),然后为下一步的前台处理必须是同步的组策略基础结构的扩展插件信号。

Delete 操作处理已完成。 该扩展插件将移到下一步的内部元素 (首选项) 并开始处理新的、 当前的内部元素上的内部元素。

替换操作表示,该扩展插件替换为新的映射的驱动器基于当前的内部元素中配置新的映射驱动器的配置。

请务必了解替换与更新之间的区别。 替换操作通常会删除现有的映射的驱动器并创建一个新 — 实质上更改的映射驱动器的所有配置元素。 更新操作只更新中的现有映射驱动器的配置元素的一部分。

序言

扩展提取的值对于 < 路径 >,< 号 >,< 持久 > < 用户名 > 和 < cPassword > 属性中的配置信息。 如果 < cPassword > 属性包含一个值,然后扩展反向-对进行模糊处理密码到其等效的明文。 该扩展插件将继续提取 < allDrives > 这些值 < thisDrive > 和 < 书 > 属性。 该扩展插件通过模拟使用用户的完整的身份验证令牌的计算机上的日志记录的用户完成处理的序言部分。 尝试模拟任何失败会导致在中止其处理的扩展中和以返回模拟失败所导致的基础错误代码。

核心

替换操作处理的核心阶段要使用的配置信息期间读取的序言阶段来确定现有的映射的网络驱动器、 删除指定的网络驱动器中,如果找到,并且若要创建新映射的网络驱动器的当前用户。

特定的驱动器号

扩展将检查是否 < 书 > 属性的值等于 true (一个 [1])。 True 值确定所需的配置适用于特定的驱动器号。

扩展开始通过确保在所有较低的情况下将被规范化的驱动器号和其语法与匹配 [驱动器号:]。 在规范化过程中遇到的任何故障会导致中止并返回无效的参数错误的扩展插件。

该扩展插件使用 Windows API WNetGetConnection 来确定通过现有的映射的网络驱动器或物理设备 (如硬盘、 CD-ROM/DVD-ROM、 ram 磁盘或可移动驱动器,是否当前使用 < 字母 > 的值。

一个 < 字母 > 值,当前用户存在,但不是映射的驱动器或不被视为物理设备会导致扩展要中止其过程和返回意外的错误。

删除映射的驱动器

当前存在的用户并远程连接到网络共享的 < 字母 > 值会导致要使用 Windows API WNetCancelConnection2 来从用户的会话中删除的连接和其持久状态的扩展插件。 当前存在该用户并且与物理设备相关联的 < 字母 > 值会导致要中止其处理并返回已分配的错误的扩展插件。

创建映射的网络驱动器

该扩展插件确定是否当前用户的令牌不是受限的令牌和 < 持久性 > 属性值等于 false ([0])。 在验证这些因素,该扩展插件使用 WNetUseConnection API 来创建新映射的驱动器为驱动器号使用 < 字母 > 属性的值。 用于映射的驱动器的共享的文件夹是 < 路径 > 属性的值。 如果 < 用户名 > 和 < cPassword > 属性包含值,则其各自的值是用于身份验证和授权到共享文件夹的连接的凭据。 此外,< 持久性 > 属性值传递给 Windows API 以指示新创建的映射的驱动器是否应登录和重新启动之间保持不变。

来自 Windows API 的成功响应指示要中止其处理并返回它接收到来自 Windows API 的基础错误代码的扩展插件。 从 Windows API 成功的响应会指示要编写"已连接...同名访问"的扩展插件 写入跟踪日志中。

如果该扩展插件确定当前用户的令牌是受限的令牌 (启用用户帐户控制) 则该扩展插件必须先创建映射的驱动器下受限的令牌而不是完全的令牌。 本部分说明为什么针对管理员和某些用户的映射的驱动器并不总是在 Windows 资源管理器中可见。

该扩展插件将停止模拟当前用户的完整令牌与用户并请求 Windows 来为用户提供受限的令牌。 模拟终止中的出现任何失败指示要中止其处理,编写"Failed to 将从用户的完整令牌还原"的扩展插件向跟踪日志并返回是未能停止模拟的结果的基础错误代码。 当前用户的受限的令牌请求中出现任何失败指示要中止其处理的扩展插件编写"无法与用户的限制的令牌模拟"并返回基础 [系统错误代码就是使用受限的令牌进行模拟故障导致。

尽管模拟 WNetUseConnnection API 以创建一个新的使用限制的令牌的扩展插件使用的用户映射的驱动器的驱动器号的使用位置是 < 字母 > 属性的值。 用于映射的驱动器的共享的文件夹是 < 路径 > 属性的值。 如果 < 用户名 > 和 < cPassword > 属性包含值,则其各自的值是用于身份验证和授权到共享文件夹的连接的凭据。 此外,< 持久性 > 属性值传递给 Windows API 以指示新创建的映射的驱动器是否应登录和重新启动之间保持不变。

不成功的响应会指示要中止其处理的扩展插件以及收到来自 Windows API 的基础错误代码编写"无法将驱动器连接使用受限令牌"。 从 Windows API 成功的响应会指示要编写"已连接...同名访问"的扩展插件 写入跟踪日志中。 然后,该扩展插件终止了模拟当前用户在受限令牌并返回模拟用户使用完整的令牌。

从模拟的用户使用受限令牌恢复失败会导致要写入跟踪日志的"Failed to 恢复受限制的上下文中的用户"的扩展插件。 故障模拟具有其完整的标记的用户会导致要写入跟踪日志的"Failed to 模拟使用用户的完整令牌"的扩展插件。 该扩展插件将继续处理通过应用到新创建的映射驱动器配置的标签。

第一个可用的驱动器号开头

< 书 > 属性值 equaling false ([0]) 确定所需的配置是将使用第一个可用的驱动器号开头 < 字母 > 属性值的映射的驱动器。

在此配置中,该扩展插件使用 < 字母 > 属性值作为通过其它将搜索的驱动器号的起始点的现有映射驱动器。 < 路径 > 属性值将成为确定映射的驱动器是否存在的匹配条件。

确定第一个可用的驱动器号

该扩展插件需要用来确定第一个可用的驱动器号之前它可以将映射网络的任何位置。 若要完成此操作,这些扩展创建小写字母开头 < 字母 > 属性值和以字母 z 结尾的列表。 该扩展插件循环访问列表以确定第一个可用的驱动器号,开头 < 字母 > 属性值中的每个字母。

该扩展插件确定字母数据被称为可用通过使用 WNetGetConnection API 来确定如果字母的列表中的当前字母映射到网络驱动器或与物理设备相关联。

在不使用的驱动器号

不映射到共享文件夹的驱动器号指示要检查是否以前保存可用的驱动器号的扩展插件。 如果该扩展已经知道的第一个可用的驱动器号,然后在当前的驱动器号上执行任何其他操作并再次使用列表中的下一步字母开始计算。 该扩展插件特意进行循环整个列表以确保将驱动器号的范围内的任何其他驱动器号映射到指定的位置。

如果该扩展不知道的任何以前保存可用的驱动器号,则它可以确保当前的字母不与物理设备相关联。 与物理设备相关联的驱动器号不合格作为可用的驱动器号。 扩展插件在当前的驱动器号上执行任何其他操作,并再次使用列表中的下一步字母开始计算。 使其对此过程的一部分的驱动器号已通过成为第一个可用的驱动器号所需的所有条件。 扩展名保存此驱动器号并通过再次使用列表中的下一步字母继续评估。

使用映射的驱动器的驱动器号

映射到共享文件夹的驱动器号指示扩展插件来评估现有的映射驱动器为 < 路径 > 属性值所用的内部元素配置的共享的文件夹位置。

如果该共享的文件夹路径匹配 < 路径 > 属性值,该扩展插件会将映射的驱动器已连接。 扩展就会写入"路径已经连接上字母"以及到跟踪日志中,当前的驱动器盘符中止循环访问的驱动器号,并继续执行核心处理阶段的驱动器标签部分。

此扩展插件完成其迭代通过驱动器号列表和验证可用的驱动器号退出。 如果仍不知道该扩展插件的可用驱动器号和它找不到现有驱动器号映射到 < 路径 > 属性值与相同的网络路径然后该扩展插件将中止其处理,并返回未连接的错误。 否则为该扩展插件能够感知的可用的驱动器号,现在必须连接到可用的驱动器号共享的网络文件夹。

连接到第一个可用驱动器

该扩展插件必须创建新的映射的驱动器使用已发现的第一个可用的驱动器号和 < 路径 > 属性值。 若要执行此操作,该扩展插件确定由当前用户和 < 持久 > 属性的值使用的令牌的类型。

如果用户具有完全的令牌或者 < 持久性 > 属性等于 false (零个 [1]),则要创建一个新的 WNetUseConnection API 映射的驱动器其中使用的驱动器号是已发现的第一个可用的驱动器号的扩展插件使用。 用于映射的驱动器的共享的文件夹是 < 路径 > 属性的值。 如果 < 用户名 > 和 < cPassword > 属性包含值,则其各自的值是用于身份验证和授权到共享文件夹的连接的凭据。 此外,为 false 的 < 持久性 > 属性值传递给 Windows API 以指示新创建的映射的驱动器是否应登录和重新启动之间保持不变。

来自 Windows API 的成功响应指示要中止其处理并返回它接收到来自 Windows API 的基础错误代码的扩展插件。 从 Windows API 成功的响应会指示要编写"已连接...同名访问"的扩展插件 写入跟踪日志中。

具有受限的令牌 (已启用的用户帐户控制) 的用户指示该扩展插件还必须创建新的驱动器映射在模拟使用用户的受限的令牌的用户时。

该扩展插件将停止模拟当前用户的完整令牌与用户并请求 Windows 来为用户提供受限的令牌。 模拟终止中的出现任何失败指示要中止其处理,编写"Failed to 将从用户的完整令牌还原"的扩展插件向跟踪日志中,并返回是未能停止模拟的结果的基础错误代码。

当前用户的受限的令牌请求中出现任何失败指示要中止其处理并返回请求限制的令牌时是到失败的结果的基础错误代码的扩展插件。

仅当扩展插件使用模拟用户的受限制的令牌原因扩展要中止其处理时出现故障的情况下,写入"无法模拟使用用户的受限令牌"向跟踪日志中,并返回是失败使用受限的令牌进行模拟的结果的基础错误代码。

尽管模拟 WNetUseConnnection API 以创建一个新的使用限制的令牌的扩展插件使用的用户映射的驱动器的驱动器号的使用位置是 < 字母 > 属性的值。 用于映射的驱动器的共享的文件夹是 < 路径 > 属性的值。 如果 < 用户名 > 和 < cPassword > 属性包含值,则其各自的值是用于身份验证和授权到共享文件夹的连接的凭据。 此外,< 持久性 > 属性值传递给 Windows API 以指示新创建的映射的驱动器是否应登录和重新启动之间保持不变。

不成功的响应会指示要中止其处理程序,将"无法将驱动器连接使用受限令牌"写入跟踪日志中连同收到来自 Windows API 的基础错误代码的扩展插件。 从 Windows API 成功的响应会指示要编写"已连接...同名访问"的扩展插件 写入跟踪日志中。 然后,该扩展插件终止了模拟当前用户在受限令牌并返回模拟用户使用完整的令牌。

从模拟的用户使用受限令牌恢复故障情况下要写入跟踪日志的"Failed to 恢复受限制的上下文中的用户"的扩展插件。 故障模拟具有其完整的标记的用户会导致要写入跟踪日志的"Failed to 模拟使用用户的完整令牌"的扩展插件。 该扩展插件将继续处理通过应用到新创建的映射驱动器配置的标签。

驱动器标签

到目前为止在过程中,该扩展插件已成功删除映射的驱动器,如果发现并创建使用特定的驱动器号或第一个可用的驱动器号映射的网络驱动器。 此外,扩展已映射的驱动器使用用户的完全令牌和限制的令牌,如果需要。

该扩展插件需要将 < 标签 > 属性值应用到新创建的驱动器号。 该扩展可确保值为 < 标签 > 属性存在且新创建的映射的驱动器和不是现有的本地或远程驱动器号。 一旦扩展确认这些条件,将使用井号 (#) 字符替换 < 路径 > 属性的值中的所有反斜杠 (\) 字符。 接下来,扩展插件创建一个使用已修改 < 路径 > 值下的注册表项

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Mountpoints2

扩展插件创建一个名为 _LabelFromReg 的新注册表值。 分配给 _LabelFromReg 的值是原始、 未修改 < 路径 > 属性值。 该扩展插件将忽略任何驱动器标签处理过程中可能出现的故障。

隐藏或显示驱动器

组策略驱动器映射扩展可以显示或隐藏在替换过程中使用两个配置的驱动器、 创建和更新操作。 它可以隐藏或显示一个单一的指定驱动器号和它可以隐藏或显示所有驱动器号。 该扩展插件首先处理所有驱动器,并最后指定驱动器。 因此,在指定的驱动器配置中配置这两个结果的结果具有对所有驱动器配置的优先级。

扩展插件确定它是否需要显示或隐藏任何驱动器号通过检查 < thisDrive > 和 < AllDrives > 属性值。 如果两者的属性值等于"NOCHANGE 则该扩展插件会执行任何其他操作并处理核心处理的 epilog 部分。 否则,该扩展插件将开始隐藏或显示驱动器过程通过将更改为到系统的安全上下文。 将更改为系统安全上下文中的出现任何失败会导致要中止其处理并返回基础的错误导致失败的扩展插件。

所有驱动器

该扩展插件确定它是否需要隐藏或通过评估 < AllDrives > 属性的值来显示所有驱动器号。 如果该属性的值等于"显示"然后扩展 NoDrives 注册表值从删除以下注册表配置单元的当前用户。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

如果该属性的值等于"隐藏"扩展对上面提及的注册表配置单元的当前用户 (如果不存在该扩展插件创建 NoDrives 注册表值) 的 NoDrives 注册表值写入 0x03FFFFFF 的十六进制值。 然后,此扩展插件进程隐藏或显示其设置特定的驱动器号。

指定的驱动器

扩展验证 < thisDrive > 属性等于"显示"隐藏"。 接下来,该扩展插件验证 < 字母 > 属性值不为空。 如果 < 字母 > 属性值为空,该扩展插件将中止其处理并返回无效的参数错误。

该扩展插件从以下注册表配置单元的当前用户检索 NoDrives 注册表值

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

该扩展插件使用基于 Microsoft 知识库文章 231289,使用组策略对象以隐藏指定的驱动器中的信息的算法来确定 < 字母 > 属性值的等效的位值。

如果 < thisDrive > 属性值等于"隐藏"扩展会使 NoDrives 注册表值中的该位。 如果 < thisDrive > 属性值等于"显示"扩展插件将禁用 NoDrives 注册表值中的位。

修改后的 NoDrives 注册表值,扩展将检查其值以确保不等于零 (0)。 如果新计算的 NoDrives 注册表值为零,该扩展插件会删除 NoDrives 注册表值。 否则,该扩展插件会将新计算的 NoDrives 注册表值保存到注册表中。

尾声

该扩展完成处理通过更新其 %lastdrivemapped%环境变量和通过安全地删除 < cPassword > 属性值的明文形式实例。 此外,如果 < 持久性 > 属性值等于 true (一个 [1]),然后为下一步的前台处理必须是同步的组策略基础结构的扩展插件信号。

替换操作处理已完成。 该扩展插件将移到下一步的内部元素 (首选项) 并开始处理新的、 当前的内部元素上的内部元素。

更新操作表示扩展刷新基于当前的内部元素中配置的现有映射的驱动器的位置的配置。 请务必了解替换与更新之间的区别。

替换操作通常会删除现有的映射的驱动器并创建一个新 — 实质上更改的映射驱动器的所有配置元素。 更新操作只更新中的现有映射驱动器的配置元素的一部分。

序言

扩展提取的值对于 < 路径 >,< 号 >,< 持久 > < 用户名 > 和 < cPassword > 属性中的配置信息。 如果 < cPassword > 属性包含一个值,然后扩展反向-对进行模糊处理密码到其等效的明文。 该扩展插件将继续提取 < allDrives > 这些值 < thisDrive > 和 < 书 > 属性。 该扩展插件通过模拟使用用户的完整的身份验证令牌的计算机上的日志记录的用户完成处理的序言部分。 尝试模拟任何失败会导致在中止其处理的扩展中和以返回模拟失败所导致的基础错误代码。

核心

更新操作处理的核心阶段是要在序言阶段中读取的配置信息用于标识现有映射网络驱动器或,如果找到,更新驱动器标签和可见性设置或创建新映射的网络驱动器的当前用户。

指定的驱动器存在

当前用户的存在并且映射到共享的网络文件夹或物理设备的 < 字母 > 值会导致扩展插件可继续通过对现有的驱动器号) 应用该首选项的已配置的标签部分进行处理。

不存在指定的驱动器

不存在用户则要创建新的映射的网络驱动器的扩展一个 < 字母 > 值。

创建映射的网络驱动器

该扩展插件确定是否当前用户的令牌不是受限的令牌和 < 持久性 > 属性值等于 false ([0])。 在验证这些因素,该扩展插件使用 WNetUseConnection API 来创建新映射的驱动器为驱动器号使用 < 字母 > 属性的值。 用于映射的驱动器的共享的文件夹是 < 路径 > 属性的值。 如果 < 用户名 > 和 < cPassword > 属性包含值,则其各自的值是用于身份验证和授权到共享文件夹的连接的凭据。 此外,< 持久性 > 属性值传递给 Windows API 以指示新创建的映射的驱动器是否应登录和重新启动之间保持不变。

来自 Windows API 的成功响应指示要中止其处理并返回它接收到来自 Windows API 的基础错误代码的扩展插件。 从 Windows API 成功的响应会指示要编写"已连接...同名访问"的扩展插件 写入跟踪日志中。

如果该扩展插件确定当前用户的令牌是受限的令牌 (启用用户帐户控制) 则该扩展插件必须先创建映射的驱动器下受限的令牌而不是完全的令牌。 本部分说明为什么针对管理员和某些用户的映射的驱动器并不总是在 Windows 资源管理器中可见。

该扩展插件将停止模拟当前用户的完整令牌与用户并请求 Windows 来为用户提供受限的令牌。 模拟终止中的出现任何失败指示要中止其处理、"无法将用户的完整令牌从还原"写入跟踪日志中,并返回是未能停止模拟的结果的基础错误代码的扩展插件。 当前用户的受限的令牌请求中出现任何失败指示要中止其处理的扩展插件、 写入"无法模拟使用用户的受限令牌"向跟踪日志中,并返回是失败使用受限的令牌进行模拟的结果的基础错误代码。

尽管模拟 WNetUseConnnection API 以创建一个新的使用限制的令牌的扩展插件使用的用户映射的驱动器的驱动器号的使用位置是 < 字母 > 属性的值。 用于映射的驱动器的共享的文件夹是 < 路径 > 属性的值。 如果 < 用户名 > 和 < cPassword > 属性包含值,则其各自的值是用于身份验证和授权到共享文件夹的连接的凭据。 此外,< 持久性 > 属性值传递给 Windows API 以指示新创建的映射的驱动器是否应登录和重新启动之间保持不变。

不成功的响应会指示要中止其处理的扩展插件以及它从 Windows API 接收到跟踪日志的基础错误代码编写"无法将驱动器连接使用受限令牌"。 从 Windows API 成功的响应会指示要编写"已连接...同名访问"的扩展插件 写入跟踪日志中。 然后,该扩展插件终止了模拟当前用户在受限令牌并返回模拟用户使用完整的令牌。

从模拟的用户使用受限令牌恢复失败会导致要写入跟踪日志的"Failed to 恢复受限制的上下文中的用户"的扩展插件。 故障模拟具有其完整的标记的用户会导致要写入跟踪日志的"Failed to 模拟使用用户的完整令牌"的扩展插件。 该扩展插件通过将已配置的标签应用于新创建的映射驱动器将继续处理。

第一个可用的驱动器号开头

< 书 > 属性值 equaling false ([0]) 确定所需的配置是更新现有的映射的驱动器使用第一个可用的驱动器号开头 < 字母 > 属性值。

在此配置中,该扩展插件使用 < 字母 > 属性值作为通过其它将搜索的驱动器号的起始点的现有映射驱动器。 < 路径 > 属性值将成为确定映射的驱动器是否存在的匹配条件。

确定第一个可用的驱动器号

该扩展插件需要用来确定第一个可用的驱动器号之前它可以将映射网络的任何位置。 若要完成此操作,该扩展插件创建小写字母开头 < 字母 > 属性值和以字母 z 结尾的列表。 该扩展插件循环访问列表以确定第一个可用的驱动器号,开头 < 字母 > 属性值中的每个字母。

该扩展插件确定字母数据被称为可用通过使用 WNetGetConnection API 来确定如果字母的列表中的当前字母映射到网络驱动器或与物理设备相关联。

在不使用的驱动器号

不映射到共享文件夹的驱动器号指示要检查是否以前保存可用的驱动器号的扩展插件。 如果该扩展已经知道的第一个可用的驱动器号,然后在当前的驱动器号上执行任何其他操作并再次使用列表中的下一步字母开始计算。 该扩展插件特意进行循环整个列表以确保将驱动器号的范围内的任何其他驱动器号映射到指定的位置。

如果该扩展不知道的任何以前保存可用的驱动器号,则它可以确保当前的字母不与物理设备相关联。 与物理设备相关联的驱动器号不合格作为可用的驱动器号。 扩展插件在当前的驱动器号上执行任何其他操作,并再次使用列表中的下一步字母开始计算。 使其对此过程的一部分的驱动器号已通过成为第一个可用的驱动器号所需的所有条件。 扩展名保存此驱动器号并通过再次使用列表中的下一步字母继续评估。

使用映射的驱动器的驱动器号

映射到共享文件夹的驱动器号指示扩展插件来评估现有的映射驱动器为 < 路径 > 属性值所用的内部元素配置的共享的文件夹位置。

如果该共享的文件夹路径匹配 < 路径 > 属性值,该扩展插件会将映射的驱动器已连接。 扩展就会写入"路径已经连接上字母"以及到跟踪日志中,当前的驱动器盘符中止循环访问的驱动器号,并继续执行核心处理阶段的驱动器标签部分。

此扩展插件完成其迭代通过驱动器号列表和验证可用的驱动器号退出。 如果仍不知道该扩展插件的可用驱动器号和它找不到现有驱动器号映射到 < 路径 > 属性值与相同的网络路径然后该扩展插件将中止其处理,并返回未连接的错误。 否则为该扩展插件能够感知的可用的驱动器号,现在必须连接到可用的驱动器号共享的网络文件夹。

连接到第一个可用驱动器

该扩展插件必须创建新的映射的驱动器使用已发现的第一个可用的驱动器号和 < 路径 > 属性值。 若要执行此操作,该扩展插件确定由当前用户和 < 持久 > 属性的值使用的令牌的类型。

如果用户具有完全的令牌或者 < 持久性 > 属性等于 false (零个 [1]),则要创建一个新的 WNetUseConnection API 映射的驱动器其中使用的驱动器号是已发现的第一个可用的驱动器号的扩展插件使用。 用于映射的驱动器的共享的文件夹是 < 路径 > 属性的值。 如果 < 用户名 > 和 < cPassword > 属性包含值,则其各自的值是用于身份验证和授权到共享文件夹的连接的凭据。 此外,为 false 的 < 持久性 > 属性值传递给 Windows API 以指示新创建的映射的驱动器是否应登录和重新启动之间保持不变。

来自 Windows API 的成功响应指示要中止其处理并返回它接收到来自 Windows API 的基础错误代码的扩展插件。 从 Windows API 成功的响应会指示要编写"已连接...同名访问"的扩展插件 写入跟踪日志中。

具有受限的令牌 (已启用的用户帐户控制) 的用户指示该扩展插件还必须创建新的驱动器映射在模拟使用用户的受限的令牌的用户时。

该扩展插件将停止模拟当前用户的完整令牌与用户并请求 Windows 来为用户提供受限的令牌。 模拟终止中的出现任何失败指示要中止其处理,编写"Failed to 将从用户的完整令牌还原"的扩展插件向跟踪日志中,并返回是未能停止模拟的结果的基础错误代码。

当前用户的受限的令牌请求中出现任何失败指示要中止其处理并返回请求限制的令牌时是到失败的结果的基础错误代码的扩展插件。

仅当扩展插件使用模拟用户的受限制的令牌原因扩展要中止其处理时出现故障的情况下,写入"无法模拟使用用户的受限令牌"向跟踪日志中,并返回是失败使用受限的令牌进行模拟的结果的基础错误代码。

尽管模拟 WNetUseConnnection API 以创建一个新的使用限制的令牌的扩展插件使用的用户映射的驱动器的驱动器号的使用位置是 < 字母 > 属性的值。 用于映射的驱动器的共享的文件夹是 < 路径 > 属性的值。 如果 < 用户名 > 和 < cPassword > 属性包含值,则其各自的值是用于身份验证和授权到共享文件夹的连接的凭据。 此外,< 持久性 > 属性值传递给 Windows API 以指示新创建的映射的驱动器是否应登录和重新启动之间保持不变。

不成功的响应会指示要中止其处理程序,将"无法将驱动器连接使用受限令牌"写入跟踪日志中连同收到来自 Windows API 的基础错误代码的扩展插件。 从 Windows API 成功的响应会指示要编写"已连接...同名访问"的扩展插件 写入跟踪日志中。 然后,该扩展插件终止了模拟当前用户在受限令牌并返回模拟用户使用完整的令牌。

从模拟的用户使用受限令牌恢复故障情况下要写入跟踪日志的"Failed to 恢复受限制的上下文中的用户"的扩展插件。 故障模拟具有其完整的标记的用户会导致要写入跟踪日志的"Failed to 模拟使用用户的完整令牌"的扩展插件。 该扩展插件将继续处理通过应用到新创建的映射驱动器配置的标签。

驱动器标签

到目前为止在过程中,该扩展插件已成功删除映射的驱动器,如果发现并创建使用特定的驱动器号或第一个可用的驱动器号映射的网络驱动器。 此外,扩展已映射的驱动器使用用户的完全令牌和限制的令牌,如果需要。

该扩展插件需要将 < 标签 > 属性值应用到新创建的驱动器号。 该扩展可确保值为 < 标签 > 属性存在且新创建的映射的驱动器和不是现有的本地或远程驱动器号。 一旦扩展确认这些条件,将使用井号 (#) 字符替换 < 路径 > 属性的值中的所有反斜杠 (\) 字符。 接下来,扩展插件创建一个使用已修改 < 路径 > 值下的注册表项

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Mountpoints2

扩展插件创建一个名为 _LabelFromReg 的新注册表值。 分配给 _LabelFromReg 的值是原始、 未修改 < 路径 > 属性值。 该扩展插件将忽略任何驱动器标签处理过程中可能出现的故障。

隐藏或显示驱动器

组策略驱动器映射扩展可以显示或隐藏在替换过程中使用两个配置的驱动器、 创建和更新操作。 它可以隐藏或显示一个单一的指定驱动器号和它可以隐藏或显示所有驱动器号。 该扩展插件首先处理所有驱动器,并最后指定驱动器。 因此,在指定的驱动器配置中配置这两个结果的结果具有对所有驱动器配置的优先级。

扩展插件确定它是否需要显示或隐藏任何驱动器号通过检查 < thisDrive > 和 < AllDrives > 属性值。 如果两者的属性值等于"NOCHANGE 则该扩展插件会执行任何其他操作并处理核心处理的 epilog 部分。 否则,该扩展插件将开始隐藏或显示驱动器过程通过将更改为到系统的安全上下文。 将更改为系统安全上下文中的出现任何失败会导致要中止其处理并返回基础的错误导致失败的扩展插件。

所有驱动器

该扩展插件确定它是否需要隐藏或通过评估 < AllDrives > 属性的值来显示所有驱动器号。 如果该属性的值等于"显示"然后扩展 NoDrives 注册表值从删除以下注册表配置单元的当前用户。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

如果该属性的值等于"隐藏"扩展对上面提及的注册表配置单元的当前用户 (如果不存在该扩展插件创建 NoDrives 注册表值) 的 NoDrives 注册表值写入 0x03FFFFFF 的十六进制值。 然后,此扩展插件进程隐藏或显示其设置特定的驱动器号。

指定的驱动器

扩展验证 < thisDrive > 属性等于"显示"隐藏"。 接下来,该扩展插件验证 < 字母 > 属性值不为空。 如果 < 字母 > 属性值为空,该扩展插件将中止其处理并返回无效的参数错误。

该扩展插件从以下注册表配置单元的当前用户检索 NoDrives 注册表值

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

该扩展插件使用基于 Microsoft 知识库文章 231289,使用组策略对象以隐藏指定的驱动器中的信息的算法来确定 < 字母 > 属性值的等效的位值。

如果 < thisDrive > 属性值等于"隐藏"扩展会使 NoDrives 注册表值中的该位。 如果 < thisDrive > 属性值等于"显示"扩展插件将禁用 NoDrives 注册表值中的位。

修改后的 NoDrives 注册表值,扩展将检查其值以确保不等于零 (0)。 如果新计算的 NoDrives 注册表值为零,该扩展插件会删除 NoDrives 注册表值。 否则,该扩展插件会将新计算的 NoDrives 注册表值保存到注册表中。

尾声

该扩展完成处理通过更新其 %lastdrivemapped%环境变量和通过安全地删除 < cPassword > 属性值的明文形式实例。 此外,如果 < 持久性 > 属性值等于 true (一个 [1]),然后为下一步的前台处理必须是同步的组策略基础结构的扩展插件信号。

更新操作处理已完成。 该扩展插件将移到下一步的内部元素 (首选项) 并开始处理新的、 当前的内部元素上的内部元素。

组策略驱动器映射扩展是在单个的动态链接库中提供的多个扩展插件之一 gpprecl.dll。 此扩展插件包括 Windows 操作系统中的以下动态链接库具有一个或多个依赖关系。

  1. ACTIVEDS。DLL

  2. ADVAPI32。DLL

  3. IPHLPAPI。DLL

  4. KERNEL32。DLL

  5. MPR。DLL

  6. MSI。DLL

  7. MSVCRT。DLL

  8. NETAPI32。DLL

  9. NTDLL。DLL

  10. OLE32。DLL

  11. 2.40.4276 的 OLEAUT32。DLL

  12. POWRPROF。DLL

  13. RPCRT4。DLL

  14. SECUR32。DLL

  15. 安装程序 API。DLL

  16. SHELL32。DLL

  17. SHLWAPI。DLL

  18. USER32。DLL

  19. USERENV。DLL

  20. 版本。DLL

  21. WINSPOOL。DRV

  22. WINSTA。DLL

  23. WLDAP32。DLL

  24. WS2_32.DLL

  25. WTSAPI32。DLL

  26. XMLLITE。DLL

Windows 操作系统启用很多不同的配置来完成一项任务。 将共享的网络文件夹映射到本地驱动器号是这些任务之一。

在用户登录过程中发生的最常见的映射网络驱动器配置。 从历史上看,IT 部门已经完成此配置使用网络登录脚本 — 作为用户登录的一部分进行处理的脚本。 对于映射主页驱动器的另一个配置是在 Active Directory 中的用户的对象上配置的共享的网络文件夹。 Windows 客户端查找对于此配置并自动连接到已配置的驱动器号共享的网络文件夹。 用户可以映射网络驱动器使用 Windows 资源管理器并让它们保持计算机重新启动之间不变。 最后,可以使用组策略驱动器映射扩展在登录期间映射驱动器。

灵活的配置非常重要 ;但是,可将一个或多个配置合并到一个解决方案需要进行彻底测试为尽可能多的这些技术的每个特定环境的了解可以 encroach 上其他从而创建不可预知的结果。 建议的最佳做法是选择一种配置,并使用以独占方式在您环境中,尤其是当映射网络驱动器在登录过程。 每个配置将驱动器映射的登录过程的不同阶段。 将合并多个配置可能会起反作用,并导致两种配置之间的冲突。 这种冲突可能会产生意外的结果、 会增加解决方案的复杂性、 会增加管理开销的解决方案,和提高故障排除问题的原因的难度。

除了在应用程序日志中记录的事件消息,组策略驱动器映射扩展具有跟踪日志记录可帮助您诊断不应用的首选项或从正在对其应用的首选项的不需要或意外的结果。

Computer-based GP setting to enable trace logging

启用使用 Computer\Policies 命名空间的组策略管理编辑器中的组策略驱动器映射日志记录。 配置驱动器映射首选项日志记录和跟踪策略设置位于管理系统 \ 组 Policy\Logging 和跟踪节点 策略设置可用于各种会影响的扩展插件将报表到事件日志、 跟踪日志记录和的文件名和位置跟踪日志的事件类型的配置选项。

故障排除是配置为捕获组策略驱动器映射信息的最佳配置事件日志记录使用信息、 警告和错误选项和配置跟踪

跟踪日志记录文件的名称和位置是可配置为任何名称和位置的用户或计算机具有读取和写入权限。 默认路径为这些文件使用组策略首选项变量 %COMMONAPPDATA%\GroupPolicy\Preference\Trace\ < 文件名 > 组策略首选项 %COMMONAPPDATA%变量相当于所有用户的应用程序数据文件夹中。

从 Windows Vista 开始,所有用户的文件夹,已不推荐使用的版本 2 的用户配置文件结构简介。 若要确保在应用程序间的兼容性,Windows 将创建一个名为 %SYSTEMDRIVE%\Users 文件夹下的文件系统中的所有用户的符号链接。 符号链接会将到所有用户文件夹中的文件系统的请求重定向C:\ProgramData文件夹。 因此,组策略首选项的跟踪日志的默认位置是C:\ProgramData\GroupPolicy\Preference\Trace\ < 文件名 >

显示: