Campo de Aprovadores do TFS no Gerenciamento de Liberação - Alguns grupos estão ausentes

1

Em um ambiente TFS (Team Foundation Server) 2017 no local, não conseguimos encontrar alguns grupos do Active Directory no campo Aprovadores do sistema de Gerenciamento de Liberação, apesar do fato de que a grande maioria dos grupos e usuários pode ser selecionado.

Inicialmente, suspeitei que o problema era devido à segurança, mas, mesmo depois de adicionar os grupos como administradores do projeto, o sistema continua a impedir que eu os encontre no menu suspenso.

Meu próximo passo foi garantir que os grupos tivessem um nível de acesso suficiente, mas depois de conceder a eles o acesso da VS Enterprise, o problema persistiria.

Embora eu possa encontrar o grupo no TFS no nível de segurança da coleção, descartei um problema do Active Directory Sync executando a tarefa do Active Directory Sync por meio do serviço da Web do TFS QueueJobNow e aguardando a conclusão.

Isso deixa os seguintes possíveis problemas tratados e verificados: segurança do TFS, nível de acesso do TFS e sincronização do Active Directory.

O que estou perdendo aqui? Existe outro nível em que preciso conceder acesso a esse grupo?

    
por mattbbpl 12.06.2017 / 18:21

1 resposta

1

Respondendo a minha própria pergunta para salvar alguns outros o problema.

A questão surgiu da ordem das operações que eu segui acima. Primeiro, é necessário conceder acesso de segurança ao projeto de equipe (usei acesso de Colaborador no meu caso) e executar a tarefa de Sincronização do Active Directory por meio do webservice TFS QueueJobNow usando o script do PowerShell abaixo (observe que o trabalho pode levar alguns minutos para ser concluído)

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

e, em seguida, você poderá inserir o grupo necessário no campo Aprovador de um ambiente no sistema de Gerenciamento de Liberação do TFS.

    
por 12.06.2017 / 21:10