0

I have a script to list all the users that have accounts on sharepoint. However, not all them are being listed. There are only 5/8 Marks that are listed for example.

I'm using powershell and a query:

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

I don't know why there are not all showing. I can find them under the portal and admin center.

4

3 回答 3

2

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

您可以在 SharePoint.StackExchange.com 上的用户信息列表如何填充?

于 2013-06-27T21:18:40.820 回答
2

您可以编写一个 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 User 代表 ADGroup,ADGroup 中的 ADUser 不会出现在用户信息列表中)。

用户信息列表项目标题将显示在控制台窗口中。 在此处输入图像描述

此外:您可以访问“ http://[您的Web 应用程序 url]/_catalogs/users/detail.aspx”来查看 Web 应用程序中的用户。 在此处输入图像描述

希望答案对你有帮助

于 2013-06-28T02:45:18.930 回答
1

我认为通过列出所有用户配置文件可能会更好。通过这样做,您至少会获得已同步到 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  
}
于 2013-06-28T06:48:15.393 回答