SharePoint Online Modern UI Experience Scanner

In this blog post, we will explore a tool called UI Experience Scanner that was released by PnP Team last year. If you are considering modernization of SharePoint Online Classic sites, then you should give a try to this tool. So well lets start on what it does, how it works etc. etc.

What this tool does ?

It generates a report of sites, list, libraries or any other customization that will not work after modernization based on if we are scanning the whole tenant or a set of sites.

These reports can be used to identify which entities does not support modern experience, what is the reason or cause that a list or library is falling back to classic experience etc.

How to launch the tool ?

First of all you need to download the tool from here. This downloads a zip which you need to extract to a location. Then launch PowerShell and navigate to the folder where extracted tool “UIExperienceScanner.exe” is present.

Location

 

powershell

How to use the tool ?

This tool allows to connect in two ways –

  • Using Credentials (Preferable if only those sites need to be scanned to which user has access)
  • Using App-Only Principal (All sites can be scanned with tenant scoped permission)

Using Credentials – In PowerShell window, type below command

.\UIExperienceScanner.exe -t <tenant name>  -u <user name> -p <password>

Example:

credentials

Using App-Only Principal – First we need to set up the principal by navigating to URL https://so365dev.sharepoint.com/_layouts/15/appregnew.aspx. Any site url can be used.)

On this page, for first textbox, click Generate button to generate Client Id and then second Generate button to generate Client Secret.

Provide values for Title (any text), App Domain (use http://www.localhost.com) and Redirect URI (use https://www.localhost.com). Click Create button. (Note– Make sure to note down the Client Id and Secret generated to use in next step).

Principal

Now we need to grant permission to the principal. If we are targeting tenant scoped permission, navigate to tenant admin URL https://so365dev-admin.sharepoint.com/_layouts/15/appinv.aspx, else navigate to site url https://so365dev.sharepoint.com/_layouts/15/appinv.aspx for Site scoped permission.

On this page, provide Client Id generated in previous step for App Id and click Lookup button. Other details will populate automatically. For permission request XML, paste below code-

      

GrantPermission

Click Create button. On the next screen, click “Trust It” button to grant permission.

Permission

Now in the PowerShell window, type below command-

.\UIExperienceScanner.exe -t <tenant name> -c <clientid> -s <clientsecret>   
//clientid and clientsecret to be used from previous steps

cidsecret

By following either of the above mentioned ways, command execution starts and tool displays entities being scanned-

scabpart1

scanpart2

Once scanning is complete, it also creates a folder at the current location (where exe is placed). This folder contains files which are basically reports created after scanning. Every time a scan is run, a new folder is created for that particular scan data.

guidfolder

Brief overview of the reports generated

IgnoredCustomizations_MasterPage.csv  This contains list of sites which are having custom master pages
IgnoredCustomizations_CustomAction.csv This contains list of custom actions which are ignored on modern experience
IgnoredCustomizations_AlternateCSS.csv  This contains list of sites where AlternateCssUrl property is set
IgnoredCustomizations.csv  This contains a summary of the above three files and allows to better understand which of our customizations require review/rework to be compatible with modern experience.
ModernListBlocked.csv There can be many reasons like JS Link, Custom Actions, Managed Metadata etc. which restricts a list/library to render in modern UI. This file contains all those lists along with reason which are blocked from modern experience. For more info check MSDN.
ModernPagesBlocked.csv  This file contains all site where modern pages are not enabled. For more info check MSDN
ScannerSummary.csv  This files logs the count of sites, web and lists scanned and the duration of scan. It also logs the version of scanner used.
 Errors.csv This file is generated only if any errors are encountered by the tool during scan.
Modern UI List Readiness.xlsx This excel file helps in analyzing the data delivered by the above csv files. It uses PowerQuery and PowerPivot for data analysis.

Other Tool Usage Examples

  • Scan Only Few Sites – This tool can be used to scan only a set of sites being considered for modernization using below commands-
.\UIExperienceScanner.exe -r <Site URL 1>,<Site URL 2> -c <clientid> -s <clientsecret>
// here -r allows to use a set of wildcard urls

.\UIExperienceScanner.exe -f "c:\temp\files.csv" -c <clientid> -s <clientsecret>
//here -f allows to refer the set of urls from a csv file
  • Partial Scan – As we saw that after scanning, tool generates a set of files that allows to determine the feasibility or approach for modernization. Sometimes it is required to check only for few things like we just want to check all sites where only customizations are ignored for modern pages. In such scenarios, this tool can be used to perform only a partial scan using below command-
.\UIExperienceScanner.exe -m IgnoredCustomizations -t <tenant name> -c <clientid> -s <clientsecret>
//here -m defines mode for partial scan (Default is Scan)
  • Help – To explore all the the attributes that can be used, run below command-
.\UIExperienceScanner.exe --help
// this display all attributes available along with examples

References:-

https://github.com/SharePoint/PnP-Tools/tree/master/Solutions/SharePoint.UIExperience.Scanner

https://docs.microsoft.com/en-us/sharepoint/dev/transform/modernize-classic-sites

Please leave a feedback to help me improve future posts.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s