SP-MembershipManager

A PowerShell 7+ and C# .NET 8 tool for managing SharePoint Online site membership at scale. What it does Connects to SharePoint Online using certificate-based Entra ID authentication via MSAL Manages site membership across multiple sites in parallel using PowerShell runspaces Protects secrets with DPAPI Ships with a GitHub Actions CI/CD pipeline for automated testing and release Stack PowerShell 7+, C# .NET 8 Microsoft.Identity.Client (MSAL) for cert-based auth DPAPI for credential protection Parallel runspaces for throughput GitHub Actions for CI/CD View on GitHub

June 14, 2026 · 1 min · Cory Francis

Repair-SharePointNames

A PowerShell utility for cleaning up file and folder names before a SharePoint migration. What it does SharePoint Migration Tool (SPMT) scan reports flag files and folders with invalid characters, reserved names, or length violations. This script parses those scan logs and renames the offending items in place, so migrations complete without manual remediation. Stack PowerShell 7+ SPMT scan log parsing Bulk rename with conflict detection View on GitHub

June 14, 2026 · 1 min · Cory Francis

Weekend Warrior: Repair-SharePointNames v1.0 is live!

Quick weekend project: published and shipped to PowerShell Gallery using Claude Code! If you’ve ever migrated file shares to SharePoint Online, with the SharePoint Migration Tool (SPMT), you know the pain and feeling of your stomach dropping when you see hundreds of INVALID_SHAREPOINT_NAME warnings for your files after your initial scans. Repair-SharePointNames fixes them in bulk, driven by SPMT’s provided scan logs. It renames flagged items safely (collision handling, deepest-path-first ordering), quarantines lock/temp files rather than deleting them, and writes a proper transaction log of all changes. ...

July 5, 2026 · 1 min · Cory Francis

AI Let Me Chase a Fake Bug for a Day

AI-assisted development is genuinely useful. It’s also very good at helping you waste a day on a wrong answer. While working on SP-MembershipManager, I kept running into inconsistent results when querying a user’s SharePoint site access. One run would return 19 sites. The next would return 8. Then 20. Then 12. No pattern, no obvious error — just noise. I asked Claude what was going on. It was confident: SharePoint replication lag. Data takes time to propagate across the service, results can be inconsistent during that window, etc. It sounded plausible. The whole point of this tool is to give non-technical users a reliable view of their permissions, so I really didn’t want it to be true, but it sounded true. ...

June 12, 2026 · 2 min · Cory Francis

I Built a Tool to Keep a Client Out of the SharePoint Admin Center

A client of mine needed help managing SharePoint site access. Nothing complicated — add a user here, remove one there, maybe a few times a year. The problem was they’re self-admittedly low-tech and had no business being handed admin center rights just to flip a few permissions. Teaching them the SharePoint admin center wasn’t a real solution. It’s overkill for what they needed, and frankly not worth the support calls. So I built something simpler. ...

June 10, 2026 · 2 min · Cory Francis