我有一个脚本列出在sharepoint上拥有帐户的所有用户。但是,并非所有这些都被列出。例如,仅列出了5/8标记。
我正在使用PowerShell和查询:
"<Query><OrderBy><FieldRef Name='ID' /></OrderBy></Query>"
我不知道为什么没有全部展示。我可以在门户网站和管理中心下找到它们。
答案 0 :(得分:2)
用户在登录网站或授予特定权限(而不是通过AD组)时会添加到用户信息列表中。
上阅读有关SharePoint.StackExchange.com的更多信息答案 1 :(得分: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用户添加到用户信息列表(ADGroup的SharePoint用户站,ADGroup中的ADUser将不会显示给用户信息列表)。
用户信息列表项目标题将显示在控制台窗口中。
更多: 您可以访问“http://[your Web应用程序URL] / _ catalogs / users / detail.aspx”来查看Web应用程序中的用户。
希望答案能帮到你
答案 2 :(得分: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
}