配置 SharePoint Server 中的人员选取器
适用于:2010 2013 2016 2019 订阅版
可以使用 Stsadm setproperty 操作在区域级别为场配置人员选取器。 通过配置此控件的设置,可以筛选和限制当用户搜索用户、组或声明时显示的结果。 这些设置会应用到网站集中的所有网站。
本文中的信息仅适用于在经典模式或声明模式下使用 Windows 身份验证的 Web 应用程序。
当网站、列表或库所有者 Microsoft在 SharePoint Server 中分配权限时,人员选取器控件用于查找和选择用户、组和声明。 有关人员选取器属性的详细信息,请参阅 Peoplepicker: Stsadm 属性。
注意
没有 Windows PowerShell 命令可用于在 SharePoint Server 2010、SharePoint Server 2013、SharePoint Server 2016 或 SharePoint Server 2019 中配置人员选取器。 但是,可以使用 PowerShell 命令在 SharePoint 订阅版本中配置人员选取器。 有关详细信息,请参阅 在 SharePoint 订阅版本中配置人员选取器。
本文包含有关如何针对特定方案配置人员选取器的信息。 有关人员选取器控件及其工作原理、它与身份验证和声明提供程序的关系以及如何规划人员选取器的详细信息,请参阅 人员选取器和声明提供程序概述。
配置人员选取器先决条件
在配置人员选取器之前,请确保满足以下要求:
验证用于运行的
Stsadm
帐户是否是安装 SharePoint Server 的服务器上的本地管理员组的成员。以管理员身份打开命令提示符窗口以执行本文中的过程。
在安装 SharePoint Server 的驱动程序的命令提示符下,将 更改为以下目录:
%CommonProgramFiles%\Microsoft Shared\Web Server Extensions\x\Bin
。注意
根据安装的 SharePoint 版本替换目录中的数字映射值“x”。 下面是 SharePoint 版本及其各自的数字映射值:
- SharePoint 2010: 14
- SharePoint 2013: 15
- SharePoint 2016 和 SharePoint 2019: 16
人员选取器设置配置
满足先决条件后,可以执行以下过程:
- 检查任何属性的设置值
- 清除人员选取器中的属性值
- 设置用于单向信任的加密密钥
- 对单向信任启用跨林或跨域的查询
- 将人员选取器限制为 Active Directory 中的特定组
- 定义管理员帐户的位置
- 强制人员选取器只选择网站集中的用户
- 使用 LDAP 查询筛选 Active Directory 帐户
- 仅返回非 Active Directory 用户帐户
检查任何属性的设置值
要检查任何人员选取器属性的设置,请键入以下命令:
stsadm.exe -o getproperty -pn <Property Name> -url <Web application URL>
有关详细信息,请参阅 Peoplepicker:Stsadm 属性。
清除人员选取器中的属性值
可以通过指定要清除的属性名称并为属性值使用空引号来删除人员选取器属性的设置。
若要删除人员选取器中的某个属性设置,请键入以下命令:
stsadm.exe -o setproperty -pn <Property Name> -pv "" -url <Web application URL>
有关详细信息,请参阅 Peoplepicker-searchadforests:Stsadm 属性。
设置用于单向信任的加密密钥
如果安装 SharePoint Server 的林或域与另一个林或域具有单向信任,则必须先设置允许向要查询的林或域进行身份验证的帐户的凭据,然后才能使用 Stsadm peoplepicker-searchadforests 属性。
注意
必须在安装 SharePoint Server 的场中的每个前端 Web 服务器上设置加密密钥。
若要设置加密密钥,请键入以下命令:
stsadm.exe -o setapppassword -password <key>
使用单向信任时启用跨林或跨域查询
如果安装 SharePoint Server 的林或域与其他林或域具有单向信任,则除了要查询的林或域的名称外,还必须指定要用于查询林或域的凭据。 人员选取器将只查询您在 peoplepicker searchadforests 属性设置中指定的林或域。
若要指定要查询的林或域以及凭据,请键入以下命令:
stsadm.exe -o setproperty -pn peoplepicker-searchadforests -pv <Valid list of forests or domains, Login name, Password> -url <Web application URL>
注意
使用 peoplepicker-searchadforests 属性时,无需包含分配给帐户的加密密钥密码。 但是,如果尚未为帐户设置加密密钥,将显示 en 错误消息。
以下示例配置用于名为 Contoso.com 的林和名为 Fabrikam.com 的域的人员选取器,还包括它们相应的凭据。
sTSADM.exe -o setproperty -pn peoplepicker-searchadforests -pv "forest:Contoso.com,Contoso\User1,Password1; domain:Fabrikam.com,Fabrikam\User2,Password2" -url https://ServerName
有关详细信息,请参阅 Peoplepicker-searchadforests:Stsadm 属性。
将人员选取器限制为 Active Directory 中的特定组
如果 Web 应用程序使用 Windows 身份验证并且未设置站点用户目录路径,则人员选取器控件将搜索整个 Active Directory 以解析用户的姓名或查找用户,而不是仅搜索特定组织单位 (OU) 中的用户。 Stsadm setsiteuseraccountdirectorypath 操作可在同一个域中将用户目录路径设置为一个特定的 OU。 在将目录路径设置为网站集之后,人员选取器控件将只在该特定 OU 下进行搜索。
若要将人员选取器限制为 Active Directory 中的某个特定 OU,请键入以下命令:
stsadm -o setsiteuseraccountdirectorypath -path <Valid OU name> –url <Web application URL>
以下示例将人员选取器配置为只返回名为"销售"的 OU 中的用户和组:
stsadm -o setsiteuseraccountdirectorypath -path "OU=Sales,DC=ContosoCorp,DC=local" -url https://ServerName
注意
一次仅可为网站集设置一个网站用户目录路径。 因此,此属性一次只指定一个 OU,并且每个网站集只应运行一次 Stsadm setsiteuseraccountdirectorypath 操作。
有关详细信息,请参阅 Setsiteuseraccountdirectorypath:Stsadm 属性。
定义管理员帐户的位置
管理员用户帐户通常位于有别于常规网站用户的 OU 中。 如果使用 Stsadm setsiteuseraccountdirectorypath 操作强制人员选取器仅返回由特定 OU 生成的查询,则还必须设置 Stsadm peoplepicker-serviceaccountdirectorypaths 属性,以便管理员可以管理网站集。
注意
在 peoplepicker-serviceaccountdirectorypaths 属性工作之前,Setsiteuseraccountdirectorypath 操作必须设置为包含值。
若要定义管理员帐户的位置,请键入以下命令:
stsadm -o setproperty -pn peoplepicker-serviceaccountdirectorypaths -pv <A list of OU names> -url <Web application URL>
以下示例将人员选取器配置为允许 OU“FarmAdmin”中的用户:
stsadm -o setproperty -pn peoplepicker-serviceaccountdirectorypaths -pv "OU=FarmAdmin,DC=Contoso,DC=local" -url https://ServerName
有关详细信息,请参阅 Peoplepicker-serviceaccountdirectorypaths: Stsadm 属性) 。
强制人员选取器只选择网站集中的用户
“人员选取器”控件由一个文本框和两个按钮组成,例如 “检查姓名” 按钮和“ 浏览 ”按钮。
- “ 检查名称 ”按钮用于解析在文本框中键入的用户名、组名称或电子邮件地址。
- “ 浏览 ”按钮将打开 “选择人员和组 ”对话框,该对话框可用于提交完整或部分字符串的查询。
两者的主要区别在于 ,“检查名称” 按钮仅解析文本框中的内容,而“ 选择人员和组 ”对话框则搜索查询字符串。 您可以通过使用 PeoplePicker-Peopleeditoronlyresolvewithinsitecollection 属性或 PeoplePicker-Onlysearchwithinsitecollection 属性强制人员选取器只返回拥有网站集中权限的用户。 但是,用于配置此限制的属性取决于是要为文本框 (“人员编辑器) ”和“ 检查姓名 ”按钮设置限制,还是为“ 选择人员和组 ”对话框设置限制。
若要在单击“ 检查姓名” 按钮时强制人员选取器仅返回在网站集中具有权限的用户,请键入以下命令:
stsadm -o setproperty –pn peoplepicker-Peopleeditoronlyresolvewithinsitecollection –pv yes –url <Web application URL>
若要在使用“ 选择人员和组 ”对话框时强制人员选取器仅返回在网站集中具有权限的用户,请键入以下命令:
stsadm -o setproperty –pn peoplepicker-onlysearchwithinsitecollection –pv yes –url <Web application URL>
有关详细信息,请参阅 Peoplepicker-onlysearchwithinsitecollection: Stsadm 属性 和 Peoplepicker-peopleeditoronlyresolvewithinsitecollection: Stsadm 属性。
使用 LDAP 查询筛选 Active Directory 帐户
可以使用轻型目录访问协议 (LDAP) 查询创建用于显示查询结果的自定义筛选器。 有关 LDAP 查询的详细信息,请参阅 LDAP Query Basics(LDAP 查询基础知识)。
若要使用自定义的 LDAP 查询,请键入以下命令:
Stsadm –o setproperty –pn peoplepicker-searchadcustomfilter -pv <LDAP query filter> -url <Web application URL>
以下示例筛选掉没有电子邮件地址或已禁用的用户帐户。 由于安全组并不总是具有与其关联的电子邮件地址,因此使用 OR 语句来确保安全组仍包含在查询结果中:
stsadm -o setproperty -pn peoplepicker-searchadcustomfilter -pv "(|(&(mail=*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))(objectcategory=group))" -url https://ServerName
以下示例仅返回活动用户而非组:
stsadm -o setproperty -pn peoplepicker-searchadcustomfilter -pv "(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2))" -url https://ServerName
有关此查询中使用的用户帐户控制字符串的说明,请参阅 搜索筛选器语法。
以下示例返回标题为“Manager”的 Active Directory 用户列表:
stsadm -o setproperty -pn peoplepicker-searchadcustomfilter -pv "((Title=Manager))" -url https://ServerName
重要
请记住,每次为特定属性运行 setproperty
命令时,该属性的当前值将被指定的新值覆盖。 如果需要基于多个条件筛选查询结果,则需要生成一个复合 LDAP 查询,其中包含要筛选的所有值。
有关详细信息,请参阅 Peoplepicker-searchadcustomfilter:Stsadm 属性。
仅返回非 Active Directory 用户帐户
如果 Web 应用程序使用基于表单的身份验证,则可以阻止人员选取器在查询结果中返回 Active Directory 帐户。
若要只返回非 Active Directory 用户帐户,请键入以下命令:
stsadm -o setproperty -pn peoplepicker-nowindowsaccountsfornonwindowsauthenticationmode -pv yes -url <Web application URL>
有关详细信息,请参阅 Peoplepicker-nowindowsaccountsfornonwindowsauthenticationmode:Stsadm 属性。