SharePoint User Information List

As a SharePoint consultant with years of experience implementing solutions for organizations, I’ve found that the User Information List (hidden list) is one of the most useful lists for getting user information.

In this tutorial, I will explain everything about the SharePoint user information list, including different access methods and various properties available in this list.

What is the SharePoint User Information List?

The User Information List is a hidden list in SharePoint that stores information about users who have accessed your site at least once. Think of it as SharePoint’s internal phone book – whenever users interact with your SharePoint environment, their basic information gets added to this list.

Here are a few important things about the User Information List:

  • It’s a system-generated list that exists in every SharePoint site
  • It stores user profile information from Active Directory
  • It’s hidden from regular navigation but accessible through specific methods
  • It synchronizes with the User Profile Service Application

Check out SharePoint ULS Logs

User Information List Properties

The User Information List contains various properties for each user. Here are a few important properties that you can see for your reference.

PropertyDescriptionExample
IDUnique identifier for each user12
NameUser’s display nameJohn Smith
AccountLogin name with domaini:0#.f|membership|[email protected]
EMailUser’s email address[email protected]
DepartmentUser’s departmentMarketing
JobTitleUser’s positionDigital Marketing Manager
PictureURL to user’s profile photo/sites/contoso/SiteAssets/ProfilePics/jsmith.jpg
SIPAddressUser’s instant messaging address[email protected]

Read 50 SharePoint Online Interview Questions and Answers

Access SharePoint User Information List

As I said, this is a hidden SharePoint list.

Let me show you how to access this list using different ways.

Access From the UI

The simplest way to access the SharePoint User Information List is through a direct URL:

  1. Go to your SharePoint site
  2. Append “/_catalogs/users/simple.aspx” to your site URL

For example:

https://tsinfotechnologies.sharepoint.com/sites/Tasks/_catalogs/users/simple.aspx

The screenshot below shows you the user information list for a SharePoint Online site.

SharePoint user information list

Access using SharePoint Designer

You can also access the user information list using SharePoint Designer. Below are the steps you can follow.

  1. Open SharePoint Designer
  2. Connect to your SharePoint Online or On-Premises site
  3. Navigate to “All Files” in the left navigation
  4. Browse to “_catalogs” folder
  5. Open the “users” folder
  6. You’ll see the User Information List here

Enable User Information List using SharePoint Server Object Model

As I said, by default, the user information list is hidden; you can enable it using SharePoint server object mode. This will work only with SharePoint on-premises sites.

Here is the code you can use:

static void Main(string[] args)
{
var siteUrl = “http://win-eqalhem27jl:7575/sites/one/”;
using (SPSite site = new SPSite(siteUrl))
{
using (SPWeb web = site.OpenWeb())
{
SPList list = web.Lists[“User Information List”];
list.Hidden = false;
list.Update();
}
}
}

Enable User Information List using CSOM

Like the SharePoint server object, the user information list can be enabled using the client-side object model.

Here is the CSOM code you can use.

static void Main(string[] args)
{
var siteUrl = “http://win-eqalhem27jl:7575/sites/one/”;
using (ClientContext clientContext = new ClientContext(siteUrl))
{
NetworkCredential _myCredentials = new NetworkCredential(“administrator”, “admin@123”);
clientContext.Credentials = _myCredentials;
Web web = clientContext.Web;
List list = web.Lists.GetByTitle(“User Information List”);
clientContext.Load(list);
list.Hidden = true;
list.Update();
clientContext.ExecuteQuery();
}
}

Enable User Information List using PowerShell

This is my favorite way to enable the user information list; you can use PowerShell.

Here is the PowerShell script you can use.

$web = Get-SPWeb "http//siteURL";
$list = $web.Lists["User Information List"];
$list.Hidden = 0;
$list.OnQuickLaunch = $true;
$list.Update();

The screenshot below shows that the user information list is visible in the Site Contents after I enabled it.

enable user information list in SharePoint

Here is the “Site Contents” page:

SharePoint user information list

Access Users from the User Information List Programmatically

Now, let me show you how to programmatically access the users from the SharePoint user information list.

Using PowerShell

You can use PowerShell to get users from the user information list. You can use the PowerShell script using Windows PowerShell ISE or Visual Studio Code.

# Connect to SharePoint Online
Connect-PnPOnline -Url "https://contoso.sharepoint.com" -Credentials (Get-Credential)

# Get the User Information List
$userInfoList = Get-PnPList -Identity "User Information List"

# Get users from the list
$users = Get-PnPListItem -List $userInfoList -PageSize 100

# Display results
$users | Select-Object -Property @{Name="Title";Expression={$_["Title"]}}, @{Name="Email";Expression={$_["EMail"]}}

Using the REST API

In SharePoint, you can also use the REST API to get users from the User Information list. Here is the code you can use.

// Example code to get user information using REST API
function getUserInfo(userId) {
    var requestUrl = _spPageContextInfo.webAbsoluteUrl + 
        "/_api/web/lists/getbytitle('User Information List')/items(" + userId + ")";
    
    $.ajax({
        url: requestUrl,
        type: "GET",
        headers: { "Accept": "application/json;odata=verbose" },
        success: function(data) {
            console.log(data.d);
            // Process user data here
        },
        error: function(error) {
            console.log("Error: " + JSON.stringify(error));
        }
    });
}

Check out SharePoint REST API Create List Item

Using PnP JS

For modern SharePoint development, you can use PnP JS to access the user information list users.

import { sp } from "@pnp/sp";
import { Web } from "@pnp/sp/webs";
import { Lists, IListEnsureResult } from "@pnp/sp/lists";

// Initialize the SP context
sp.setup({
    sp: {
        baseUrl: "https://contoso.sharepoint.com"
    }
});

// Get user information
async function getUserInfoById(userId) {
    try {
        const user = await sp.web.siteUsers.getById(userId).get();
        console.log(user);
        return user;
    } catch (error) {
        console.error("Error fetching user:", error);
    }
}

Synchronization Problems

Sometimes, you might notice that the User Information List doesn’t automatically update when user profile information changes in Azure AD or the User Profile Service. Here’s how to address this:

  1. Force a refresh: Have the user visit the site again to trigger an update
  2. User Profile Synchronization: Schedule a full synchronization in the User Profile Service Application
  3. PowerShell update: Use PowerShell to update specific user properties programmatically

Conclusion

I hope now you learn about the SharePoint user information list. I have also explained how to access the user information list in SharePoint using different methods. Finally, I have explained how to programmatically get users from the SharePoint user information list using Rest API, PowerShell, and PnP JS. Do let me know if you still have any questions.

You may also like:

  • >

    Build a High-Performance Project Management Site in SharePoint Online

    User registration Power Apps canvas app

    DOWNLOAD USER REGISTRATION POWER APPS CANVAS APP

    Download a fully functional Power Apps Canvas App (with Power Automate): User Registration App

    Power Platform Tutorial FREE PDF Download

    FREE Power Platform Tutorial PDF

    Download 135 Pages FREE PDF on Microsoft Power Platform Tutorial. Learn Now…