某些用户不在站点用户信息列表

问题描述:

我有一个脚本来列出所有拥有SharePoint帐户的用户。但是,并非所有这些都被列出。例如,仅列出5/8个标记。某些用户不在站点用户信息列表

我使用PowerShell和查询:

"<Query><OrderBy><FieldRef Name='ID' /></OrderBy></Query>" 

我不知道为什么会出现不是所有的表现。我可以在门户和管理中心下找到它们。

当用户登录到站点或授予特定权限(不通过AD组)时,将用户添加到用户信息列表中。

您可以在How is the user information list populated?

阅读更多关于SharePoint.StackExchange.com你可以写一个PowerShell脚本(名为ListWebUserInformationListItems.ps1)如下:

# Run with SharePoint 2010 Management Shell 
$webUrl = Read-Host "Enter the web url" 
$web = Get-SPWeb $webUrl 
$list = $web.Lists["User Information List"] 
$query = New-Object Microsoft.SharePoint.SPQuery 
$queryCamlString = '<Query><OrderBy><FieldRef Name="Title" Ascending="True" /></OrderBy></Query>' 
$query.Query = $queryCamlString 
$userInformationListItems = $list.GetItems($query) 
foreach($userInformationListItem in $userInformationListItems) 
{ 
    echo $userInformationListItem.Title 
} 

然后执行脚本并输入网络当控制台窗口显示“输入网址”消息时。

注意:您可以使用SPQuery获取作为此Web应用程序中用户的用户信息列表项。用户不是农场中的所有用户。如果您将ADGroup添加到SharePoint,则只会将一个SharePoint用户添加到用户信息列表(SharePoint用户代表ADGroup,ADGroup中的ADUser不会显示在用户信息列表中)。

用户信息列表项目标题将显示在控制台窗口中。 enter image description here

更多了: 您可以访问 “http://[your Web应用程序URL]/_目录/用户/ detail.aspx”,查看谁在Web应用程序的用户。 enter image description here

希望的回答将帮助你

我想你可能会列出所有用户配置文件,而不是得到更好。通过这样做,您至少可以获得已同步到SharePoint中的所有用户的列表。例如:

$site = Get-SPSite "your URL" 
$context = Get-SPServiceContext $site 
$profileManager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context) 
$profiles = $profileManager.GetEnumerator() 

foreach($profile in $profiles) 
{ 
    $displayName = $profile.DisplayName 
}