'dsget group' falha com a classe de objeto não corresponde à linha de comando

2

Estou tentando recuperar informações sobre membros de um grupo de diretórios ativo usando dsget . O comando recupera alguns, mas não todos os membros (53 de 141). O grupo de problemas contém um grupo filho. A mesma sintaxe de comando com outros grupos que não possuem um grupo filho é bem-sucedida. Docs para dsget deixam claro que os subgrupos devem funcionar.

dsget group "CN=MyGroup,OU=Users and Groups,DC=example,DC=ca" -members -expand -c | dsget user -samid -display

dsget failed:CN=SomeChildGroup,OU=Users and Groups,DC=example,DC=ca:The object class of the target does not match the one specified on the command line.
type dsget /? for help.  samid       display
  dandithe    Danny.Dithers
  adamaca     Adam.Abacus
  sarahso     Sarah.Soother
  colcust     Colin.Custard

Isso é executado em uma estação de trabalho cliente (win7) de uma conta de usuário que não possui privilégios de administrador de domínio. Adicionar ou remover o parâmetro -expand para sub-grupos de consulta recursiva parece não ter efeito. Nem o -c continua com o erro.

Alguma ideia do que está errado e de como contorná-lo? Por favor, tenha em mente que não tenho privilégios de domínio.

    
por matt wilkie 01.03.2012 / 20:15

2 respostas

4

Descobri que estava colocando o -c no lado errado do cano. Ou talvez devesse estar em ambos os lados. Em qualquer caso, adicionando-o aos trabalhos certos:

set ad_path=CN=MyGroup,OU=Users and Groups,DC=example,DC=ca
dsget group "%ad_path%" -members -expand -c | dsget user -samid -display -c

Ainda há um erro, porque o grupo filho não é um usuário, mas passa por cima disso e continua.

Solução encontrada graças a Richard Parmiter.

    
por 02.03.2012 / 20:55
1

O problema é que alguns dos objetos vindos do dsget group são, na verdade, grupos, mas você está passando todos eles para dsget user .

A maneira simples de contornar isso é enviar os resultados do primeiro comando para um arquivo, editar as entradas do grupo e alimentar o resultado para o segundo comando.

    
por 01.03.2012 / 21:05