Sustained enterprise delivery across architecture, engineering, support, and modernization programs.
Robert F. Lopes
Cloud Architecture - SharePoint - Copilot - Enterprise Collaboration
I help organizations modernize collaboration, content management, automation, and cloud operations with a practical approach grounded in architecture, governance, user adoption, and execution. More than an online resume, this is where I share what I have learned over years of SharePoint migrations.
Business Impact Highlights
Progressed from systems analyst to cloud solution architect across defense, aerospace, and enterprise domains.
Trusted in mission-critical and classified environments with strong governance and compliance discipline.
Architected and supported collaboration solutions designed for large user populations and operational continuity.
Professional Profile
Information Technology expert with more than 20 years of progressive hands-on experience covering application support, user maintenance, network planning, internet architecture, web design and development, SharePoint engineering, and cloud solution delivery.
Recognized for critical thinking, strong communication, team-oriented execution, and disciplined delivery. Brings business education, technical depth, and operational experience across enterprise and government environments.
Key Strengths
20+ years across enterprise IT, cloud solutions, SharePoint, applications, and infrastructure
Current Microsoft role centered on architecture guidance, customer advocacy, and solution delivery
Deep SharePoint background across engineering, architecture, development, governance, and modernization
Experience supporting defense, government, enterprise, and mission-critical environments
Experience
Provides customer-facing cloud solution support and architecture guidance for Microsoft business customers. Owns customer experience from issue identification through resolution across phone, web, and collaborative engineering channels.
Owned high-visibility initiatives across support, engineering, and architecture functions, driving measurable improvements in service quality, process maturity, and execution speed. Consistently served as a trusted bridge between operations, engineering, and leadership to move complex programs from problem discovery to successful delivery.
Projects & Solution Themes
Modernized collaboration platforms and cloud service operations for enterprise Microsoft customers.
Led full-lifecycle SharePoint delivery from architecture through governance and production support.
Supported secure collaboration solutions across classified and multi-network defense environments.
Enabled workflow automation and productivity gains through modern Microsoft platform capabilities.
Education & Certifications
Military Service
Skills
SharePoint Upgrade Scripts
These scripts are part of my SharePoint modernization toolkit. They are designed to be novice-friendly, read-only by default, and focused on producing actionable migration insights.
A structured toolkit of 40+ PowerShell scripts that assess SharePoint environments across planning, optimization, build readiness, migration risk, governance controls, and executive reporting.
Scripts are executed in a recommended run order, produce CSV-based outputs, and are designed as mostly read-only diagnostics so teams can baseline current state before remediation and migration activities.
The goal is to reduce migration surprises, improve prioritization, and provide clear evidence for leadership decisions with repeatable, transparent, and audit-friendly reporting.
Typical engagement flow: establish baseline inventory first, reduce risk through targeted analysis, then drive migration waves with governance and executive reporting checkpoints.
Example Usage
Most of these scripts follow the same operating pattern: run against a single site collection when you want targeted analysis, or run against the full web application when you want broader inventory. The example below uses a site users report pattern, which individuals can adapt to other scripts with similar parameters.
Scan One Site Collection
Use this mode when you want to inspect one specific site collection in isolation.
.\Script_04_SiteUsers_Report.ps1
-WebAppUrl "https://sharepoint.contoso.com"
-SiteCollectionUrl "https://sharepoint.contoso.com/sites/HR"
-OutputCsv "C:\Temp\Site_Users_HR.csv"
Scan Full Web Application
Use this mode when you want the script to enumerate all matching scope across the web application.
.\Script_04_SiteUsers_Report.ps1
-WebAppUrl "https://sharepoint.contoso.com"
-OutputCsv "C:\Temp\Site_Users_All.csv"
-NoPrompt
For the Top 23 folder, first rename the file from .txt to .ps1 before running it. For the root toolkit, use the existing .ps1 files directly. Parameter names can vary by script, but this is the standard execution pattern users should expect.
Top 23 Useful Migration Scripts
This focused script set gives customers a practical migration-readiness baseline across identity, content, dependencies, infrastructure, and blocker detection. Each script is designed to answer a specific planning, cleanup, or modernization question before major migration work begins. The files in the Top 23 folder should be treated as a separate collection from the root scripts folder and not as matching or interchangeable script numbers.
Single Site Use
Rename the file to .ps1, open it in SharePoint Management Shell or PowerShell, and set the target input to one site or web URL. This is the best approach for validating one problem area, one business site, or one migration candidate at a time.
Entire Site Collection Use
Rename the file to .ps1, then run it against the full site collection scope so the script can enumerate all child webs, libraries, users, permissions, and related configuration signals under that collection. Use this mode for complete discovery and migration baselining.
Expected Outcome
These scripts are intended to produce read-only inventory or risk outputs that support dependency mapping, cleanup decisions, rebuild vs retire planning, and executive-ready migration discussions.
End-to-End Coverage
Identity and access, content structure, workflow and versioning impact, customizations, platform services, infrastructure, and migration blockers are all represented in this shortlist.
What It Gives Customers
Full environment inventory, security clarity, dependency mapping, blocker identification, and a more defensible migration-readiness view before execution begins.
Decision Support
The reports help teams decide what to rebuild, what to remediate, what to retire, and where to focus remediation effort first.
Identity & Access Layer
01. Site Inventory Report
Purpose: establish a high-level baseline of the target site or site collection before deeper analysis.
- Site or web URL
- Title and template
- Owner or admin context
- Structural baseline for follow-on scripts
03. Site Collection Admins Report
Purpose: identify full-control ownership across site collections.
- Site collection URL
- Primary admin owner
- Secondary admin
- All site collection admins
- Total admin count and risk indicator
04. Site Users Report
Purpose: inventory all users for identity cleanup and governance.
- User name, login, and email
- Site and web location
- Site admin flag
- Domain group flag
- Risk classification
05. Group Inventory Report
Purpose: audit group-based access and permissions.
- Group name and owner
- Members and member count
- Permission levels
- High-privilege access indicators
- Risk classification
06. Permissions Audit Report
Purpose: baseline effective access and uncover broken inheritance or high-risk permissions.
- Permission scope by site, list, or library
- Users and groups with assigned roles
- Inheritance status
- Elevated access indicators
11. Orphan User Signal Report
Purpose: identify stale, unresolved, or potentially invalid accounts that create cleanup risk.
- User identity signals
- Unresolved or disabled account indicators
- Known site or web context
- Cleanup and governance risk markers
21. Authentication Model Report
Purpose: evaluate authentication readiness for modernization and modern auth alignment.
- Web application URL and zone
- Authentication type such as NTLM, Negotiate, or Claims
- SSL enabled or disabled
- Legacy vs modern risk classification
Content & Usage Layer
02. Storage Usage Report
Purpose: evaluate storage consumption and likely migration footprint.
- Site collection size
- Database distribution
- Content growth indicators
- Storage-heavy migration risk signals
07. Lists and Libraries Inventory Report
Purpose: identify content structure and usage patterns.
- List or library name
- Item count
- Last modified date
- Size indicators
08. Large Lists Report
Purpose: identify lists that exceed performance or migration thresholds.
- Lists above threshold such as 5,000 items
- Item counts
- Site location
- Risk classification
09. Workflow Inventory Report
Purpose: identify workflows that may need rebuild, replacement, or retirement.
- Workflow name
- Type such as 2010, 2013, or custom
- Last run date
- Associated list or site
10. Versioning Audit Report
Purpose: assess versioning impact on storage use and migration size.
- Library name
- Versioning settings
- Version counts
- Estimated storage or migration impact
Dependency & Customization Layer
12. Feature Inventory Report
Purpose: identify feature dependencies that can affect migration or rebuild planning.
- Feature ID and name
- Scope such as site or web
- Custom vs out-of-the-box classification
- Risk classification
13. Custom Action Inventory Report
Purpose: identify UI and script-based customizations that may need replacement.
- ScriptLink, Ribbon, and JavaScript customizations
- Script sources such as ScriptSrc and ScriptBlock
- Location and registration details
- Risk classification
14. Search Health Report
Purpose: validate search service readiness and crawl health before migration.
- Search service status
- Crawl freshness
- Last crawl timestamps
- Risk classification
Infrastructure & Platform Layer
15. Farm Inventory Report
Purpose: baseline farm-level health and structural configuration.
- Farm name and version
- Servers, roles, and status
- Service instances
16. Web Application Configuration Report
Purpose: document web application configuration needed for rebuild and modernization planning.
- URL
- Port, SSL, and host header
- Application pool
- Managed paths
- Authentication settings
17. IIS Certificate Binding Report
Purpose: validate SSL and certificate configuration across web bindings.
- Port and host header
- SSL enabled or disabled
- Certificate presence
- Risk classification
22. SharePoint Cumulative Updates Report
Purpose: audit the farm's patch level and identify servers running out-of-date CU builds.
- Server name and role
- Installed build number and mapped CU label
- Out-of-date status vs latest known CU
- Upgrade Ready / Not Ready export flag
.\Script_22_SharePoint_CU_Report.ps1
-OutputCsv "C:\Temp\SharePoint_CU_Report.csv"
23. SharePoint CU Install
Purpose: install a SharePoint Cumulative Update on a server using a controlled sequence with PSConfig to complete the upgrade.
- Applies CU patch from a specified location
- Runs PSConfig to finalise the upgrade
- Logs progress and errors to a specified path
- Run on each server individually as Admin
.\Script_23_SharePoint_CU_Install.ps1
-CULocation "C:\Install\CU"
-LogPath "C:\Temp\CU_Install.log"
Migration-Critical Layer
18. Content Database Inventory Report
Purpose: validate content database readiness and surface attach or migration blockers.
- Database name and size
- Site collection count
- Feature dependencies
- Migration risk indicators
19. Service Application Inventory Report
Purpose: identify the platform services that must be recreated, mapped, or validated post-migration.
- Service application name
- Type such as Search, MMS, or UPA
- Application pool
- Service account
- Endpoint presence and risk classification
20. Site Lock State Report
Purpose: identify locked or restricted sites that could block migration execution.
- Site collection URL
- Lock state such as Unlock, ReadOnly, or NoAccess
- Storage or quota indicators
- Migration blocker classification
Original Root Toolkit Scripts
The section below is the original root script kit. It is separate from the Top 23 folder above. Different filenames, different numbering, and different organization are expected here. Use the Top 23 pack when you want the curated customer script destination; use the root toolkit when you want the full broader script library and phased run-order experience.