There is a lot of confusion around SharePoint’s scheduled User Profile Synchronization. Here is the current truth: There is no out-of-the-box support for a scheduled full synchronization for SharePoint User Profile Services… only incremental synchronization. Yes, we know… you can always manually perform a full synchronization from the Central Administration UI. But where is the fun in that?
Here is how to schedule automatic execution of the User Profile Full Synchronization :
Conventions:
For the purpose of this blog entry, we will assume all scripts are located in a folder at C:\Scripts\.
STEP#1: Get the name of your User Profile Synchronization Application
- Launch the Central Administration UI.
- Navigate to Manage Service Applications
- Note the name for the User Profile Service
In the screenshot below, the name is “User Profile Service”. Your install may vary
STEP#2: Create the PowerShell script
Place the following text into the following file: C:\Scripts\UserProfileSync.PS1
Add-PsSnapin Microsoft.SharePoint.PowerShell
$UPS= Get-SPServiceApplication | where { $_.DisplayName -eq “[UPSName]”}
$UPS.StartImport($true)
Important: Be sure to replace [UPSName] with the name of your user profile service from step#1
STEP#3: Schedule the task
- Launch Task Scheduler from Administrative Tools
- Right click and select Create New Task
- Fill out the General tab
Important: Verify Run whether user is logged on or not and Run with highest privileges are both checked - Configure the Triggers as appropriate for your organization
- Create an Action to be fired when triggered
Important: You must setup the Action to launch PowerShell and point to the script via the parameters field - Configure all other parameters as appropriate for your organization
That’s it! Simple!
According to the Timer Job Status, this only kicks off an Incremental and not a Full Sync.
Jonathan,
The $true flags the StartImport() method to perform a full sync. This is executed outside of SharePoints timer jobs, so the status listed will not be accurate.