InfoPath is one of the most popular and widely used forms design and development solution that developers and IT consultants use alike, primarily across on-premise versions. However, there are no direct out-of-the-box means of identifying lists/libraries using InfoPath.

Once again, PowerShell comes to the rescue. Using a simple PowerShell, we can easily identify the lists/libraries using InfoPath Forms. We can extend it and generate a report out of it as well.

This script can identify all the lists and libraries that use InfoPath. This can be useful for scenarios like –

  • Identify lists using InfoPath to consider them for replacement with other solutions like Nintex Forms, K2 SmartForms, etc.
  • Convert/Re-engineer InfoPath forms to PowerApps
  • Generate a report containing lists using InfoPath form, and replace them with CSOM designs
  • User Profile service embedded in InfoPath works differently in SharePoint 2016 than that of SharePoint 2010. A report of all InfoPath enabled list/library will be beneficial to perform the fix.

The Script

 

The key here is the line below,

  1. $myList.ContentTypes[0].ResourceFolder.Properties[“_ipfs_infopathenabled”] -eq $true

This snippet above checks if the Content Type’s Resource Folder metadata has the InfoPath property – InfoPath Forms Services (_ipfs_infopathenabled) activated on it.

This script runs against site collection, but it can be very easily extended to run across subsite level or even list/library level.

Usage

The script returns the InfoPath lists/libraries below details

  • Site,
  • Web,
  • List/Library Name,
  • List/Library URL where the form is deployed

The output is in the form of a CSV file which can be very easily be converted into a .xlsx file for further processing and reporting.