Percebi que, quando uso o Powershell para obter a associação de grupo de um grupo de segurança de domínio do Active Directory, o cmdlet do Powershell Get-ADGroupMember $Group
falha com a mensagem de erro:
PS C:\> get-adgroupmember MyGroup
get-adgroupmember : An operations error occurred
At line:1 char:1
+ get-adgroupmember MyGroup
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (MyGroup:ADGroup) [Get-ADGroupMember], ADException
+ FullyQualifiedErrorId : ActiveDirectoryServer:8224,Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember
Tentei especificar o -server $DC
parâmetro para que o cmdlet vise um DC específico e, em seguida, verifico os logs de segurança nesse DC enquanto reproduzo o erro e nenhuma auditoria de falha de segurança relevante é gerada. Eu descobri todas as entradas de registro de diagnóstico na services\NTDS\Diagnostics
chave e isso também não produz nada de interessante nos logs dos serviços de diretório.
Se eu remover os membros do grupo que residem no outro domínio de MyGroup, o cmdlet funcionará sem problemas.
Curiosamente, noto que se eu executar o comando localmente no próprio DC, ele funciona. Mas quando executo o comando remotamente de um servidor membro, usando a mesma conta de usuário (que é um administrador de domínio), ele falha.
Alguma ideia do que há de errado?
Os cmdlets do Active Directory Powershell, como
Get-ADGroupMember
o uso do Active Directory Web Services (ADWS).Uma declaração como
geralmente é um sinal de alerta de que o problema subjacente é a delegação Kerberos.
Muitos serviços aproveitam a delegação Kerberos e o ADWS não é exceção.
Então, vamos ver meu tíquete de concessão de tíquete (TGT) do Kerberos:
Volte sua atenção para o campo Ticket Flags. Algo está faltando. Este bilhete não é encaminhável .
Por que um ticket não pode ser encaminhado?
Eu desmarquei essa caixa de seleção, limpei meus tíquetes Kerberos com
klist purge
, obtenho um novo tgt realizando qualquer tipo de atividade de rede que exija obter um novo tgt se eu ainda não tiver um (gpupdate
é um bom exemplo), inspeciono o TGT novamente e Percebo que agora inclui o sinalizador encaminhável.Agora o cmdlet do Powershell funciona conforme o esperado de um servidor membro.
Quando o grupo contém entidades de segurança (usuários ou grupos) de outro domínio, é retornada uma referência que deve ser perseguida. Para perseguir essa referência, o ADWS deve representar o usuário que fez a chamada original. Se a delegação Kerberos estiver desativada nessa conta de usuário, a representação/delegação não poderá ocorrer.
Esse comportamento foi alterado com atualizações de segurança recentes do Windows Server.
O padrão seguro agora é desabilitar a Delegação TGT nas relações de confiança da floresta. Por causa disso, Get-ADGroupMember falhará em grupos com entidades de segurança estrangeiras entre florestas até que a Microsoft decida corrigir o problema. Até então, uma solução alternativa é usar:
Get-ADGroup -Properties member