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.
| Property | Description | Example |
|---|---|---|
| ID | Unique identifier for each user | 12 |
| Name | User’s display name | John Smith |
| Account | Login name with domain | i:0#.f|membership|[email protected] |
| User’s email address | [email protected] | |
| Department | User’s department | Marketing |
| JobTitle | User’s position | Digital Marketing Manager |
| Picture | URL to user’s profile photo | /sites/contoso/SiteAssets/ProfilePics/jsmith.jpg |
| SIPAddress | User’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:
- Go to your SharePoint site
- Append “/_catalogs/users/simple.aspx” to your site URL
For example:
https://tsinfotechnologies.sharepoint.com/sites/Tasks/_catalogs/users/simple.aspxThe screenshot below shows you the user information list for a SharePoint Online site.

Access using SharePoint Designer
You can also access the user information list using SharePoint Designer. Below are the steps you can follow.
- Open SharePoint Designer
- Connect to your SharePoint Online or On-Premises site
- Navigate to “All Files” in the left navigation
- Browse to “_catalogs” folder
- Open the “users” folder
- 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.

Here is the “Site Contents” page:

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:
- Force a refresh: Have the user visit the site again to trigger an update
- User Profile Synchronization: Schedule a full synchronization in the User Profile Service Application
- 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:
- Get SharePoint List Name and GUID using PowerShell and CSOM
- CAML Query Builder for SharePoint
- PowerShell SharePoint Commands And Examples
- The security validation for this page is invalid and might be corrupted in SharePoint Rest API

After working for more than 18 years in Microsoft technologies like SharePoint, Microsoft 365, and Power Platform (Power Apps, Power Automate, and Power BI), I thought will share my SharePoint expertise knowledge with the world. Our audiences are from the United States, Canada, the United Kingdom, Australia, New Zealand, etc. For my expertise knowledge and SharePoint tutorials, Microsoft has been awarded a Microsoft SharePoint MVP (12 times). I have also worked in companies like HP, TCS, KPIT, etc.
This was very helpful – not what I need today, but will reference it later/as needed. Thank you!