Find and Replace User ID in SharePoint InfoPath Forms using PowerShell

Requirement: Replace User IDs in InfoPath Forms.

A little background: A particular user’s User account changed in the Active directory, and in SharePoint, we ran the Move-SPUser cmdlet to accommodate the user’s SAM account name change. However, many InfoPath form libraries have numerous InfoPath forms with an old user ID. Of course, Move-SPUser does not affect InfoPath Forms!

Replace User ID in SharePoint InfoPath Forms using PowerShell

PowerShell script to search and replace user id in InfoPath XML Forms:

This PowerShell script iterates through all InfoPath forms in a given site collections, scans, and replaces a given user ID from all forms.

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

#Configuration Parameters

#Old and New User IDs - CASE SENSITIVE!

#Get all webs in the site collection
$WebsColl = Get-SPSite $SiteCollURL | Get-SPWeb -Limit All

#Iterate through each web
foreach($web in $WebsColl)
    Write-host "Processing web:"$web.Url
    #Get all InfoPath Form Libraries in the web
    $InfoPathLibs = $web.lists | where { $_.BaseType -eq "DocumentLibrary" -and $_.BaseTemplate -eq "XMLForm"} 

    #Loop through each InfoPath form library and Forms (.xml)
    Foreach($Library in $InfoPathLibs)
        Foreach($Item in $Library.Items)
            # Load the contents of the InfoPath Form
            $File = $Item.File
            $Data = [System.Text.Encoding]::ASCII.GetString($File.OpenBinary())
            #Check if the File has Old ID
                $Data = $Data.Replace($OldUserID, $NewUserID)
                $Data = $Data.Replace("???","") #special characters fix!

                Write-host "InfoPath XML File updated at $($web.URL)/$($Item.File.URL)"

Salaudeen Rajack

Salaudeen Rajack - Information Technology Expert with Two decades of hands-on experience, specializing in SharePoint, PowerShell, Microsoft 365, and related products. Passionate about sharing the deep technical knowledge and experience to help others, through the real-world articles!

Leave a Reply

Your email address will not be published. Required fields are marked *