1

В локальной среде TFS (Team Foundation Server) 2017 мы не можем найти несколько групп из Active Directory в поле утверждающих системы управления релизами, несмотря на тот факт, что можно выбрать подавляющее большинство групп и пользователей.

Сначала я подозревал, что проблема связана с безопасностью, но даже после добавления групп в качестве администраторов проектов система продолжает мешать мне найти их в раскрывающемся списке.

Следующим моим шагом было убедиться, что у групп был достаточный уровень доступа, но после предоставления им доступа VS Enterprise проблема не исчезла.

Несмотря на то, что я могу найти группу в TFS на уровне безопасности коллекции, я исключил проблему синхронизации Active Directory, запустив задание синхронизации Active Directory через веб-службу TFS QueueJobNow и дождавшись ее завершения.

Таким образом, рассматриваются и проверяются следующие потенциальные проблемы: безопасность TFS, уровень доступа TFS и синхронизация Active Directory.

Что мне здесь не хватает? Есть ли другой уровень, на котором мне нужно предоставить доступ для этой группы?

1 ответ1

1

Отвечая на мой собственный вопрос, чтобы избавить некоторых других от неприятностей.

Проблема возникла из-за порядка операций, которые я проводил выше. Сначала необходимо предоставить защищенный доступ к командному проекту (в моем случае я использовал доступ к Contributor), затем запустить задание синхронизации Active Directory через веб-службу TFS QueueJobNow с помощью приведенного ниже сценария PowerShell (обратите внимание, что выполнение задания может занять несколько минут),

[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)
    }
}

и тогда вы сможете ввести нужную группу в поле утверждающего среды в системе управления релизами TFS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .