Feld "TFS-Genehmiger" in Release Management - Einige Gruppen fehlen

560
mattbbpl

In einer lokalen TFS (Team Foundation Server) 2017-Umgebung können wir einige Gruppen von Active Directory im Feld Approvers des Release Management-Systems nicht finden, obwohl die überwiegende Mehrheit der Gruppen und Benutzer ausgewählt werden kann.

Ich hatte anfangs den Verdacht, dass das Problem aus Sicherheitsgründen bestand, aber selbst nachdem ich die Gruppen als Projektadministrator hinzugefügt hatte, hindert das System mich weiterhin daran, sie in der Dropdown-Liste zu finden.

Mein nächster Schritt bestand darin, sicherzustellen, dass die Gruppen über eine ausreichende Zugriffsebene verfügten, aber nachdem VS-Zugriff gewährt wurde, bleibt das Problem bestehen.

Obwohl ich die Gruppe in TFS auf der Ebene der Sammlungssicherheit finden kann, schloss ich ein Problem mit der Active Directory-Synchronisierung aus, indem ich den Active Directory-Synchronisierungsjob über den TFS-QueueJobNow-Webservice ausführte und darauf wartete, dass er abgeschlossen wurde.

Dadurch bleiben die folgenden potenziellen Probleme gelöst und überprüft: TFS-Sicherheit, TFS-Zugriffsebene und Active Directory-Synchronisierung.

Was fehlt mir hier? Gibt es eine andere Ebene, auf der ich der Gruppe Zugriff gewähren muss?

1

1 Antwort auf die Frage

1
mattbbpl

Meine eigene Frage beantworten, um anderen die Mühe zu ersparen.

Das Problem ergab sich aus der Reihenfolge der Operationen, die ich oben ausführte. Sie müssen zunächst Sicherheitszugriff für das Teamprojekt gewähren (in meinem Fall habe ich den Contributor-Zugriff verwendet), und anschließend den Active Directory-Synchronisierungsjob über den TFS-QueueJobNow-Webservice mit dem unten stehenden PowerShell-Skript ausführen (beachten Sie, dass der Job einige Minuten dauern kann).

[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Client") $configServer = new-object Microsoft.TeamFoundation.Client.TfsConfigurationServer(new-object System.Uri("http://localhost:8080/tfs")) $tfsJobService = $configServer.GetService([Microsoft.TeamFoundation.Framework.Client.ITeamFoundationJobService]) $jobs= $tfsJobService.QueryJobs() $jobID = new-object System.Guid("544DD581-F72A-45A9-8DE0-8CD3A5F29DFE") foreach ($job in $jobs) { if (($job.JobId -eq $jobID)) { $Identity_SynchronizationJob = $job  $tfsJobService.QueueJobNow($Identity_SynchronizationJob,$true) } } 

Anschließend sollten Sie die erforderliche Gruppe in das Freigabefeld einer Umgebung im Release Management-System von TFS eingeben können.