none
Comand Power Shell Exchange 2007 para mostrar, salvar lista de grupos com os usuarios RRS feed

  • Pergunta

  • Boa tarde a todos,

    Estou precisando de um comando via powershell do exchange 2007, para salvar uma lista que contenha todos os grupos com oso usuarios de cada grupo onde eu trabalho.

    Desde já agradeço,

     

     

    quinta-feira, 29 de julho de 2010 20:47

Respostas

  • Boa tarde Clayton,

     

    pelo que eu entendi, você precisa de uma lista com todos os grupos e seus membros certo ?

     

    Para tal, use o seguinte comando no DOS.

     

    dsget group -name "nome do grupo" | dsget group -members | dsget users -samid

    ou o dsquery no caso.

    dsquery * domainroot -filter "(&(objectClass=Group)(managedby=*)(sAMAccountName=*))" -attr managedby displayname managedby -limit 0

     

    Você pode usar também o CSVDE

    CSVDE -f c:\grupos.csv -r objectCategory=group

     

    Espero ter ajudado.

     

    Att,

     

     

     


    Juan Carlos Flores Neto
    terça-feira, 17 de agosto de 2010 18:27
  • Clayton,

    só complementando alguns pontos da resposta do juan:

    dsquery group -name | dsget group -members -expand

    Ou via vbs:

    Const ForWriting = 2
    filePath = "Users_and_groups.txt"
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextFile = objFSO.OpenTextFile(filepath, ForWriting, True)
    
    Set rootDSE = GetObject("LDAP://RootDSE")
    DomainContainer = rootDSE.Get("defaultNamingContext")
    Set conn = CreateObject("ADODB.Connection")
    conn.Provider = "ADSDSOObject"
    conn.Open "ADs Provider"
    strLDAP = "<LDAP://" & DomainContainer & ">;(&(scriptPath=*));adspath;subtree"
    Set oComm = CreateObject("ADODB.Command")
    oComm.ActiveConnection = conn
    oComm.CommandText = strLDAP
    oComm.Properties("Sort on") = "DisplayName"
    oComm.Properties("Page size") = 1500
    
    Set rs = oComm.Execute
    
    objTextFile.writeLine("Usuário"& vbtab &"Grupos")
    While Not rs.EOF
    	grps = ""
    	Set User = GetObject(rs.Fields(0).Value)
    	if isarray(User.MemberOf) then
    	For each grp in User.memberOf
    		grp1 = split(grp,",")
    		grps = grps & " ; " & grp1(0)
    	Next
    		objTextFile.writeLine(User.DisplayName & vbtab & grps)
    	else
    		grp1 = split(User.MemberOf,",")
    		objTextFile.writeLine(User.DisplayName & vbtab & grp1(0))
    	end if
    	
    	rs.MoveNext()
    wend
    
    MsgBox "Process complete!"

    abs 


    JATOBA - Qualquer criança brinca, qualquer criança se diverte! Texto meramente ilustrativo! haushuda
    quarta-feira, 18 de agosto de 2010 14:43
    Moderador

Todas as Respostas

  • Boa tarde Clayton,

     

    pelo que eu entendi, você precisa de uma lista com todos os grupos e seus membros certo ?

     

    Para tal, use o seguinte comando no DOS.

     

    dsget group -name "nome do grupo" | dsget group -members | dsget users -samid

    ou o dsquery no caso.

    dsquery * domainroot -filter "(&(objectClass=Group)(managedby=*)(sAMAccountName=*))" -attr managedby displayname managedby -limit 0

     

    Você pode usar também o CSVDE

    CSVDE -f c:\grupos.csv -r objectCategory=group

     

    Espero ter ajudado.

     

    Att,

     

     

     


    Juan Carlos Flores Neto
    terça-feira, 17 de agosto de 2010 18:27
  • Clayton,

    só complementando alguns pontos da resposta do juan:

    dsquery group -name | dsget group -members -expand

    Ou via vbs:

    Const ForWriting = 2
    filePath = "Users_and_groups.txt"
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextFile = objFSO.OpenTextFile(filepath, ForWriting, True)
    
    Set rootDSE = GetObject("LDAP://RootDSE")
    DomainContainer = rootDSE.Get("defaultNamingContext")
    Set conn = CreateObject("ADODB.Connection")
    conn.Provider = "ADSDSOObject"
    conn.Open "ADs Provider"
    strLDAP = "<LDAP://" & DomainContainer & ">;(&(scriptPath=*));adspath;subtree"
    Set oComm = CreateObject("ADODB.Command")
    oComm.ActiveConnection = conn
    oComm.CommandText = strLDAP
    oComm.Properties("Sort on") = "DisplayName"
    oComm.Properties("Page size") = 1500
    
    Set rs = oComm.Execute
    
    objTextFile.writeLine("Usuário"& vbtab &"Grupos")
    While Not rs.EOF
    	grps = ""
    	Set User = GetObject(rs.Fields(0).Value)
    	if isarray(User.MemberOf) then
    	For each grp in User.memberOf
    		grp1 = split(grp,",")
    		grps = grps & " ; " & grp1(0)
    	Next
    		objTextFile.writeLine(User.DisplayName & vbtab & grps)
    	else
    		grp1 = split(User.MemberOf,",")
    		objTextFile.writeLine(User.DisplayName & vbtab & grp1(0))
    	end if
    	
    	rs.MoveNext()
    wend
    
    MsgBox "Process complete!"

    abs 


    JATOBA - Qualquer criança brinca, qualquer criança se diverte! Texto meramente ilustrativo! haushuda
    quarta-feira, 18 de agosto de 2010 14:43
    Moderador