Edit

Run a classic pages assessment

Run the classic pages assessment with --mode Classic --classicinclude Pages.

Before you start, complete the classic pages requirements.

Page modernization workflow

  1. Configure and run the Classic pages assessment.
  2. Validate site, web, and Audit coverage.
  3. Interpret and prioritize the page results.
  4. Remediate or map blocking Web Parts.
  5. Transform selected pages with PnP PowerShell.
  6. Validate the modern pages and expand the migration wave.

Assess the complete tenant

Application authentication is recommended for a full-tenant assessment:

Before running the command, configure the application certificate.

microsoft365-assessment.exe start --mode Classic --classicinclude Pages `
  --authmode application `
  --tenant <tenant>.sharepoint.com `
  --applicationid <application-id> `
  --certpath "My|CurrentUser|<certificate-thumbprint>"

The --tenant value is the SharePoint host name without https://.

Assess selected site collections

Use --siteslist for a short comma-separated list:

microsoft365-assessment.exe start --mode Classic --classicinclude Pages `
  --skipusageinformation `
  --authmode interactive `
  --tenant <tenant>.sharepoint.com `
  --applicationid <application-id> `
  --siteslist "https://<tenant>.sharepoint.com/sites/site1,https://<tenant>.sharepoint.com/sites/site2"

Use --sitesfile for a larger scope:

microsoft365-assessment.exe start --mode Classic --classicinclude Pages `
  --authmode application `
  --tenant <tenant>.sharepoint.com `
  --applicationid <application-id> `
  --certpath "My|CurrentUser|<certificate-thumbprint>" `
  --sitesfile "C:\assessment\sites.txt"

The sites file contains one absolute site-collection URL per line. Don't combine --siteslist and --sitesfile.

Page-specific options

Option Effect
--exportwebpartproperties Adds serialized web part properties to classicpagewebparts.csv.
--skipusageinformation Skips Microsoft Graph audit usage collection and doesn't generate classicpageauditusage.csv.
--auditlogwindowdays <1-180> Sets the audit window. The default is 14 days.
--skipuserinformation Omits page modifier information.
--homepageonly Filters the page inventory to the home page of each web. It doesn't filter site-scoped Audit results.
--threads <number> Changes parallelism. Start with 4 to 8 threads when throttling is a concern.

Important

Microsoft Graph Audit Query isn't available to this assessment in sovereign-cloud environments, including GCC High, DoD, and Microsoft 365 operated by 21Vianet. Use --skipusageinformation; prioritize pages with ModifiedAt, page importance, and business-owner input instead of Audit activity.

For example, assess only home pages, export web part properties, and skip audit usage:

microsoft365-assessment.exe start --mode Classic --classicinclude Pages `
  --homepageonly `
  --exportwebpartproperties `
  --skipusageinformation `
  --authmode application `
  --tenant <tenant>.sharepoint.com `
  --applicationid <application-id> `
  --certpath "My|CurrentUser|<certificate-thumbprint>"

Scope considerations

  • For a tenant that uses custom SharePoint URLs (vanity URLs), configure both AdminCenterUrl and MySiteHostUrl in appsettings.json, and provide --siteslist or --sitesfile. See Assessment tool configuration.
  • For a Multi-Geo tenant, run a separate assessment for each geo. Use the primary tenant host in --tenant and provide the geo's site collections with --siteslist or --sitesfile.
  • Run a small representative scope first to validate authentication, output, audit access, and scan duration.
  • The tool supports up to three parallel assessments, but parallel scans increase the risk of throttling.

Monitor and control the assessment

List available assessments:

microsoft365-assessment.exe list

Show continuously refreshed status:

microsoft365-assessment.exe status

Pause and restart an assessment:

microsoft365-assessment.exe pause --id <assessment-id>
microsoft365-assessment.exe restart --id <assessment-id>

The assessment ID is also the name of the local data folder. Review the log in that folder if progress stops changing.

After site processing finishes, status can show Finalizing while post-scan work runs. Assessment waits up to 90 minutes for each page Audit query. A query can remain notStarted or running during that wait. If no audit chunk succeeds before the wait expires, classicpageauditusage.csv records QueryStatus=failed and a SkipReason that starts with QueryTimeout. Review [AuditLog] entries in the assessment log before treating Finalizing as a hang.

Generate report output

Generate CSV files and, on Windows, the Power BI template:

microsoft365-assessment.exe report --id <assessment-id>

The assessment must be Finished or intentionally Paused before a report can be generated. The tool rejects report requests for assessments that are still running or finalizing.

Generate only CSV files in a custom location:

microsoft365-assessment.exe report --id <assessment-id> --mode CsvOnly --path "C:\reports"

By default, output is written to the report subfolder under the assessment-ID folder.

Use --delimiter Semicolon when a semicolon-delimited export is required. Use --open false to prevent the generated report from opening automatically.

Next steps

  1. Interpret and prioritize the classic page results.
  2. Review publishing-page readiness, when applicable.
  3. Transform selected pages with PnP PowerShell.
  4. Validate the transformed pages.

Reference