none
Exportar Usuários de Grupos no AD (Com Relação de Confiança) RRS feed

  • Pergunta

  • Pessoal, olha que situação atípica.

    Tenho dois domínio configurados com Relação de Confiança em ambos, tudo ok. Autenticação funciona, atribuição em grupos Domain Local, etc...

    Tenho um grupo de Escopo Domain Local no domínio "A", e como membros deste grupo usuários do domínio "B". Preciso exportas estes usuários para depois importá-los em um grupo de Escopo Domain Local no domínio "B". Aí que está o problema, tenho o script abaixo que funciona perfeitamente, mas só me traz os usuários do domínio "A", como posso contornar essa situação?

    On Error Resume Next
    
    Diretorio= "C:\Temp\Groups"
    
    grupo= InputBox("Digite o nome do grupo ")
    
    file= grupo & ".txt"
    
    Set oFSO = WScript.CreateObject("Scripting.FileSystemObject")
    
    Set objFolder = oFSO.CreateFolder(Diretorio)
    Set Dir=oFSO.GetFolder(Diretorio)
    
    Set arqtxt = Dir.CreateTextFile(file, True)
    
    Set rootDSE = GetObject("LDAP://RootDSE")
    domainContainer =  rootDSE.Get("defaultNamingContext")
    Set conn = CreateObject("ADODB.Connection")
    conn.Provider = "ADSDSOObject"
    conn.Open "ADs Provider"
    LDAPStr = "<LDAP://" & DomainContainer & ">;(&(objectclass=group)(objectCategory=group)(samaccountname=" & grupo & "));adspath;subtree"
    
    Set rs = conn.Execute(LDAPStr)
    If rs.RecordCount = 1 Then
       Set oGroup = GetObject(rs.Fields(0).Value)
              
    End If
    for each strMember in oGroup.member
    
    Spmember = Split(strMember, ",")
    
    member= Spmember(0)
    
    arqtxt.WriteLine Mid (member,4)
         
    Next
    
    iGroupCount = 0
         For each strMember in oGroup.member
              If Len(strMember) = 0 Then
                   wscript.echo "Grupo sem nenhum membro ou não existente!."
              Else
                   iGroupCount = iGroupCount + 1
                  
              End If
         Next
    
    arqtxt.WriteLine("Número total de usuarios neste grupo = ") & iGroupCount
    arqtxt.Close 
    
    WScript.echo "Pronto!!!"
    wscript.quit
    


    • Editado Fábio JrModerator quarta-feira, 9 de outubro de 2013 16:24 Formatação do código
    quarta-feira, 9 de outubro de 2013 14:41

Todas as Respostas

  • Marco,

    O seu script está configurado para pegar o dominio da estação onde você está executando o script:

    Set rootDSE = GetObject("LDAP://RootDSE")
    domainContainer =  rootDSE.Get("defaultNamingContext")


    Vc tem duas opções:

    1) Executar o script no dominio B

    2) Alterar a linha abaixo:

    Set rootDSE = GetObject("LDAP://RootDSE")

    para uma que faça referência ao dominio B, exemplo:

    Set rootDSE = GetObject("LDAP://dc=dominio,dc=B,dc=com,dc=br")


    Fábio de Paula Junior

    quarta-feira, 9 de outubro de 2013 16:26
    Moderador
  • Fábio, infelizmente nenhuma das opções funcionou! Resulta com a mensagem "Grupo sem nenhum membro ou não existe!"
    quinta-feira, 10 de outubro de 2013 12:31
  • Retire o On error resume next do incio do script, senão você não consegue ver qual o é o problema.

    Fábio de Paula Junior

    quinta-feira, 10 de outubro de 2013 13:03
    Moderador
  • Ok, tirando o "On error resume next" o script é executado sem problemas, mas exporta apenas os usuários do domínio "A". Os usuários do domínio "B" aparecem no arquivo .txt assim: S-1-5-21-1229272821-152049171-682003330-65277
    quinta-feira, 10 de outubro de 2013 13:17
  • Quando vc executa de uma máquina no dominio B, logado com um usuário do dominio B? o que acontece?

    Fábio de Paula Junior

    quinta-feira, 10 de outubro de 2013 13:41
    Moderador
  • Line: 28

    Char: 1

    Error: Object required: 'oGroup'

    Code: 800A01A8

    quinta-feira, 10 de outubro de 2013 14:10
  • Aí fica difícil, eu não tenho o ambiente para testar e este erro não diz muita coisa.

    Fábio de Paula Junior

    quinta-feira, 10 de outubro de 2013 19:10
    Moderador
  • Eu tentaria também executar de dentro de um DC do domínio B.

    Fábio de Paula Junior

    quinta-feira, 10 de outubro de 2013 19:46
    Moderador
  • Tá difícil Fábio, estou tentando executar o script em ambos DCs e não rola. Estou tentando também com os comandos DSQUERY e DSGET mas só trazem como resultado o SID.
    quinta-feira, 10 de outubro de 2013 20:03
  • Tente mais uma coisa,

    Faça a consulta de dois grupos, um tem que ser do tipo Dominio Local e o outro tem que ser do tipo Global. Se puder também tente com um Universal, mas acho que os dois primeiros devem ser suficientes.


    Fábio de Paula Junior

    quinta-feira, 10 de outubro de 2013 23:16
    Moderador
  • Fábio, bom dia. Somente grupos Domain Local permitem adicionar membros de outro domínio com Relação de Confiança.

    Fiz mais um teste, usei o ADMT e também exportou os usuários com o SID... Caraca, que droga! Rs... To vendo que vou ter que cadastrar os usuários nos novos grupos tudo na mão.

    sexta-feira, 11 de outubro de 2013 11:06
  • Mais um teste com LDIFDE, executando em ambos DCs... Só SID como resultado!!! Estou desistindo e vou ter que calejar meus dedos de tanto digitar usuários!!!
    sexta-feira, 11 de outubro de 2013 12:17