-
Notifications
You must be signed in to change notification settings - Fork 0
Home
GitHub Action edited this page Jun 26, 2026
·
3 revisions
SPSUserSync is a PowerShell toolkit to keep SharePoint Server User Information Lists and the User Profile Service Application (UPA) synchronized with multiple Active Directory forests — without relying on the built-in User Profile AD Import.
Use this toolkit when:
- Your farm spans several AD forests, some without two-way trust
- Your security team won't grant the broad AD permissions UPA Import requires
- You have non-standard LDAP directories (custom
objectClass, alternateuidfield) - You need fine-grained control over which domains, OUs and users are synchronized
- You want a deterministic, file-based, auditable sync flow
┌──────────────────────┐ JSON ┌──────────────────────┐
│ Application farm N │ ─────────────► │ UPA master server │
│ SPSyncUserInfoList │ over SMB │ SPSyncUserProfile │
└──────────┬───────────┘ └──────────┬───────────┘
│ │
▼ ▼
Active Directory User Profile Service
(any number of forests) Application (UPA)
-
SPSyncUserInfoList.ps1 runs on each application farm. It walks every
SPSite, resolves each uniqueSPUseragainst the right AD forest usingGet-SPSADConnection, and writes a UTF-8 JSON snapshot. The file is then copied to the master server of the User Profile Service farm. -
SPSyncUserProfile.ps1 runs on the master server of the User Profile Service farm. It reads the JSON snapshot and reconciles each profile in the UPA (create / update / mark
UNKNOWN_USER).
Both scripts share the SPSUserSync.Common PowerShell module: AD resolution, log rotation, transcript bootstrap, event logging — all centralized so there is no code duplication.
- Getting Started — prerequisites, installation, first run
-
Configuration — the three
.psd1files explained - Usage — running, scheduling, logs and troubleshooting
- Release Process — for maintainers: how to ship a new version
Navigation
Project