策略 CSP - LocalUsersAndGroups
配置
范围 | 版本 | 适用的操作系统 |
---|---|---|
✅ 设备 ❌ 用户 |
✅ 专业版 ✅ 企业版 ✅ 教育版 ✅ Windows SE ✅ IoT 企业版/IoT 企业版 LTSC |
✅ Windows 10 版本 20H2 [10.0.19042] 及更高版本 |
./Device/Vendor/MSFT/Policy/Config/LocalUsersAndGroups/Configure
此设置允许管理员管理设备上的本地组。 可能的设置:
- 更新组成员身份:通过“U”操作更新组并添加和/或删除成员。 使用“更新”时,策略中未指定的现有组成员保持不变。
- 替换组成员身份:通过“R”操作替换组成员身份来限制组。 使用 Replace 时,现有组成员身份将替换为 add member 节中指定的成员列表。 此选项的工作方式与受限组相同,并且删除策略中未指定的任何组成员。
注意
如果同一组同时配置了 Replace 和 Update,则 Replace 将获胜。
注意
RestrictedGroups/ConfigureGroupMembership 策略设置还允许配置成员 (用户或Microsoft Entra 组) 到 Windows 10 本地组。 但是,它只允许将现有组完全替换为新成员,并且不允许选择性添加或删除。
从 Windows 10 版本 20H2 开始,建议使用 LocalUsersAndGroups 策略,而不是 RestrictedGroups 策略。 不支持将这两个策略应用于同一设备,并且可能会产生不可预知的结果。
描述框架属性:
属性名 | 属性值 |
---|---|
格式 |
chr (字符串) |
访问类型 | 添加、删除、获取、替换 |
允许的值:
展开以查看架构 XML
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0">
<xs:simpleType name="name">
<xs:restriction base="xs:string">
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
<xs:element name="accessgroup">
<xs:complexType>
<xs:sequence>
<xs:element name="group" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>Group Configuration Action</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="action" type="name" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="add" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Group Member to Add</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="member" type="name" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="remove" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Group Member to Remove</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="member" type="name" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="property" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Group property to configure</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="desc" type="name" use="required" />
<xs:attribute name="value" type="name" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="desc" type="name" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="GroupConfiguration">
<xs:complexType>
<xs:sequence>
<xs:element name="accessgroup" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Local Group Configuration</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
示例:
下面是组配置的策略定义 XML 的示例:
<GroupConfiguration>
<accessgroup desc = "">
<group action = ""/>
<add member = ""/>
<remove member = ""/>
</accessgroup>
</GroupConfiguration>
其中:
<accessgroup desc>
:指定要配置的本地组的名称或 SID。 如果指定 SID, 则 LookupAccountSid API 用于将 SID 转换为有效的组名称。 如果指定名称, 则 LookupAccountName API 用于查找组并验证名称。 如果名称/SID 查找失败,将跳过该组,并处理 XML 文件中的下一个组。 如果有多个错误,则会在策略处理结束时返回最后一个错误。<group action>
:指定要对本地组执行的操作,该组可以是“更新”和“限制”,由你和 R 表示:- 更新。 此操作必须用于保持当前组成员身份不变,以及添加或删除特定组的成员。
- 限制。 必须使用此操作将当前成员身份替换为新指定的组。 此操作提供的功能与 RestrictedGroups/ConfigureGroupMembership 策略设置相同。
<add member>
:指定要配置的成员的 SID 或名称。<remove member>
:指定要从指定组中删除的成员的 SID 或名称。注意
指定用户帐户的成员名称时,必须使用以下格式 - AzureAD\userUPN。 例如,“AzureAD\user1@contoso.com”或“AzureAD\user2@contoso.co.uk”。 若要添加Microsoft Entra 组,需要指定 entra 组 SID Microsoft。 Microsoft此策略不支持 Entra 组名称。 有关详细信息,请参阅 LookupAccountNameA 函数。
有关如何创建自定义配置文件的信息,请参阅 在 Intune 中使用 Windows 10 设备的自定义设置 。
重要提示
-
<add member>
和<remove member>
可以使用Microsoft Entra SID 或用户名。 若要使用此策略添加或删除Microsoft Entra 组,必须使用组的 SID。 Microsoft,可以使用用于组的 图形 API 获取 Entra 组 SID。 SID 存在于 属性中securityIdentifier
。 - 在 或
<remove member>
中<add member>
指定 SID 时,将添加成员 SID,而不尝试解析它们。 因此,在指定 SID 时要非常小心,以确保它是正确的。 -
<remove member>
对于 R (Restrict) 操作无效,如果存在,则将被忽略。 - XML 中的列表按给定的顺序处理,R 操作除外,R 操作最后处理以确保它们获胜。 它还意味着,如果某个组多次存在并具有不同的添加/删除值,则所有这些组都将按照它们存在的顺序进行处理。
示例 1:Microsoft以 Entra ID 为重点。
以下示例使用 SID S-1-5-21-2222222222222-33333333-4444444444-500 更新内置管理员组,Microsoft Entra 帐户“”bob@contoso.com和 Microsoft Microsoft 具有 SID S-1-12-1-1111111111-2222222222-333333333-4444444444 的 Entra 组Microsoft Entra 已加入计算机。
<GroupConfiguration>
<accessgroup desc = "S-1-5-21-2222222222-3333333333-4444444444-500">
<group action = "U" />
<add member = "AzureAD\bob@contoso.com"/>
<add member = "S-1-12-1-111111111-22222222222-3333333333-4444444444"/>
</accessgroup>
</GroupConfiguration>
示例 2:将内置管理员组替换为Microsoft Entra 用户帐户。
注意
使用“R”替换选项配置 SID S-1-5-21-22222222222-333333333-4444444444-500 的内置管理员组时,应始终将管理员指定为成员以及任何其他自定义成员。 这是必要的,因为内置管理员必须始终是管理员组的成员。
<GroupConfiguration>
<accessgroup desc = "S-1-5-21-2222222222-3333333333-4444444444-500">
<group action = "R" />
<add member = "AzureAD\bob@contoso.com"/>
<add member = "Administrator"/>
</accessgroup>
</GroupConfiguration>
示例 3:在混合加入的计算机上添加和删除组成员的更新操作。
以下示例 演示如何使用 SID S-1-5-21-2222222222222-3333333-44444444444-500 更新本地 (组) —使用其名称 (Contoso\ITAdmins) 添加 AD 域组作为成员, 按其 SID (S-1-12-1-111111111-2222222222-333333333-4444444444) 添加Microsoft Entra 组,并删除本地帐户 (Guest) (如果存在)。
<GroupConfiguration>
<accessgroup desc = "S-1-5-21-2222222222-3333333333-4444444444-500">
<group action = "U" />
<add member = "Contoso\ITAdmins"/>
<add member = "S-1-12-1-111111111-22222222222-3333333333-4444444444"/>
<remove member = "Guest"/>
</accessgroup>
</GroupConfiguration>
注意
将Microsoft Entra 组 SID 添加到本地组时,Microsoft Entra 帐户登录权限仅针对 Windows 10 设备上的以下已知组进行评估:
- 管理员
- 用户
- 来宾
- Power Users
- 远程桌面用户
- 远程管理用户
常见问题
本部分提供有关 LocalUsersAndGroups 策略 CSP 的一些常见问题的解答。
如果意外从管理员组中删除内置管理员 SID,会发生什么情况?
出于安全原因,从内置管理员组中删除内置管理员帐户在 SAM/OS 级别被阻止。 尝试这样做将导致失败,并出现以下错误:
错误代码 | 符号名称 | 错误描述 | 标题 |
---|---|---|---|
0x55b (十六进制) 1371 (十二月) |
ERROR_SPECIAL_ACCOUNT | 无法对内置帐户执行此操作。 | winerror.h |
使用 R (限制) 操作配置内置管理员组时,请在 中 <add member>
指定内置管理员帐户 SID/名称以避免此错误。
是否可以添加已存在的成员?
可以,可以添加已是组成员的成员。 这不会对组进行任何更改,也不会出错。
如果成员不是组成员,是否可以删除该成员?
可以,即使成员不是组成员,也可以删除该成员。 这不会对组进行任何更改,也不会出错。
如何将域组作为成员添加到本地组?
若要将域组添加为本地组的成员,请指定本地组中 <add member>
的域组。 使用完全限定的帐户名 (例如,domain_name\group_name) 而不是独立名称 (例如,group_name) 以获得最佳结果。 有关详细信息,请参阅 LookupAccountNameA 函数 。
是否可以将多个 LocalUserAndGroups 策略/XML 应用于同一设备?
否,这是不允许的。 尝试这样做将导致 Intune 中的冲突。
如果指定不存在的组名称,会发生什么情况?
将跳过无效的组名称或 SID。 将应用策略的有效部分,并在处理结束时返回错误。 此行为符合本地 AD GPP (组策略首选项) LocalUsersAndGroups 策略。 同样,将跳过无效的成员名称,并在末尾返回错误,以通知并非所有设置都已成功应用。
如果在同一 XML 中指定 R 和 U,会发生什么情况?
如果在同一 XML 中同时指定 R 和 U,则 R (限制) 操作优先于 U (更新) 。 因此,如果一个组在 XML 中出现两次,一次与你一起出现,再次出现在 R 中,则 R 操作获胜。
如何检查在客户端设备上应用的策略的结果?
在客户端设备上应用策略后,可以调查事件日志以查看结果:
- 打开事件查看器 (eventvwr.exe) 。
- 导航到 WindowsDeviceManagement-Enterprise-Diagnostics-Provider>AdminMicrosoft>>应用程序和服务日志>。
- 搜索字符串
LocalUsersAndGroups
以查看相关详细信息。
如何对名称/SID 查找 API 进行故障排除?
排查名称/SID 查找 API 问题:
通过运行以下命令在客户端设备上启用 lsp.log :
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name LspDbgInfoLevel -Value 0x800 -Type dword -Force Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name LspDbgTraceOptions -Value 0x1 -Type dword -Force
将显示 lsp.log 文件 (C:\windows\debug\lsp.log) 。 此日志文件跟踪 SID-Name 解析。
通过运行以下命令关闭日志记录:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name LspDbgInfoLevel -Value 0x0 -Type dword -Force Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name LspDbgTraceOptions -Value 0x0 -Type dword -Force