How to Clean Up the SharePoint User Information List with Powershell

In this post, Lead SharePoint Engineer Andy Milsark provides a tip for SharePoint 2010. Looking for more? Check out our catalog of SharePoint Tips & Tricks

I recently finished a SharePoint 2010 claims authentication project and came across an issue with user information stored in the user information list. We are using ADFS 2.0 and using email address as the unique identifier and identity claim. When user accounts are created in the user information list when assigning them permissions through our custom claims provider, email address is saved as the display name and there is nothing saved under the “Work e-mail” field.

Screenshot: SharePoint User Information List

I was not able to click on “My Settings” and edit the fields because the User Profile service was provisioned. Even after I deleted the User Profile service, I could not edit these fields through the SharePoint UI as you can see below.

Static field in User Information List cannot be edited

Thanks to Brian Cartmel, I was able to figure out the powershell code to update a user’s information in the User Information List:

Add-PSSnapin microsoft.sharepoint.powershell -ea continue

$site = Get-SPSite "https://www.hostedsharepointatfpweb.net"

$web = $site.RootWeb

$list = $web.Lists["User Information List"]

#the account is using our trusted ADFS Identity Provider

$i = $list.Items | where {$_["Account"] -eq "i:05.t|prod adfs [email protected]"}

$i["Work e-mail"] = " [email protected] "

$i["Title"] = "Andy M" #Users Display Name

$i.update()

$web.Dispose()

$site.Dispose()

According to my research each site collection has a User Information Lists which is separate from user profiles managed by the User Profile Service in SharePoint 2010 Server. This is a hidden list which you can see by navigating to http://yoursharepointsite.com/_catalogs/users/detail.aspx

Happy SharePointing!

References: Brian Cartmel – Update ‘System Account’ user information on a stand alone SharePoint installation

2012-04-30T06:48:13+00:00 April 30th, 2012|

7 Comments

  1. […] the original post: Clean Up SharePoint User Information Lists with Powershell ← Building Your SharePoint Site? Remember Your Audience | Views … SharePoint 2010 […]

  2. Jimmy March 20, 2013 at 6:18 pm - Reply

    How to “show” the UIL?
    Sometime we need to visit it with code,but it is hiddened by sharepoint we cann’t find the list.
    My question is “How to “show” the UIL?”

  3. N03L August 9, 2013 at 5:29 am - Reply

    @Jimmy

    Hi Jimmy.
    You should be able to type the address directly into your browser.
    http://yoursitename/_catalogs/users/simple.aspx

  4. Bisi September 6, 2013 at 1:32 pm - Reply

    I am working with SharePoint 2010 Foundation and needs to Sync Active Directory Information to User Information List.

    Hoe can I achieve this? Kindly help.

    Thank you.

  5. Jules June 18, 2014 at 10:22 am - Reply

    Thank you! This was exactly what I was looking for. Works like a charm.

  6. Dirk October 10, 2014 at 2:26 am - Reply

    Thanks a lot!
    In international scenarios, make sure to use the localized display name of the user information list, e.g.
    $list = $web.Lists[“Benutzerinformationsliste”] for German

  7. Suresh December 3, 2014 at 7:35 am - Reply

    Please help me to get a similar script for SharePoint 2007.
    Delete users from All people list (UIL).

    Appreciate your help. Thanks

Leave A Comment