Skip to content

Instantly share code, notes, and snippets.

@f-bader
Forked from jstangroome/Sync-TfsIdentity.ps1
Last active March 17, 2021 14:55
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save f-bader/83c1a0ba5b0c47d75c9acefe1c177446 to your computer and use it in GitHub Desktop.
Save f-bader/83c1a0ba5b0c47d75c9acefe1c177446 to your computer and use it in GitHub Desktop.
Force TFS 2018 to synchronize Active Directory group memberships
[CmdletBinding()]
param (
[Parameter(Mandatory=$true, Position=0)]
[uri]
$ServerUri
)
$ErrorActionPreference = 'Stop'
Set-StrictMode -Version Latest
[Reflection.Assembly]::LoadFrom('D:\Program Files\Microsoft Team Foundation Server 2018\Tools\Microsoft.TeamFoundation.Client.dll')
$Server = [Microsoft.TeamFoundation.Client.TfsConfigurationServerFactory]::GetConfigurationServer($ServerUri)
$Server.EnsureAuthenticated()
$JobService = $Server.GetService([Microsoft.TeamFoundation.Framework.Client.ITeamFoundationJobService])
$IdentitySyncJobId = [guid]'544dd581-f72a-45a9-8de0-8cd3a5f29dfe'
$IdentitySyncJobDef = $JobService.QueryJobs() |
Where-Object { $_.JobId -eq $IdentitySyncJobId }
if ($IdentitySyncJobDef) {
Write-Verbose "Queuing job '$($IdentitySyncJobDef.Name)' with high priority now"
$QueuedCount = $JobService.QueueJobNow($IdentitySyncJobDef, $true)
if ($QueuedCount -eq 0) {
Write-Error "Failed to queue job"
}
} else {
Write-Error "Could not find Periodic Identity Synchronization job definition (id $IdentitySyncJobId)."
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment