Usuário com melhor resposta
Comand Power Shell Exchange 2007 para mostrar, salvar lista de grupos com os usuarios

Pergunta
-
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- Marcado como Resposta Thiago A. E. Carmo sexta-feira, 20 de agosto de 2010 19:43
-
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- Marcado como Resposta Thiago A. E. Carmo sexta-feira, 20 de agosto de 2010 19:43
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- Marcado como Resposta Thiago A. E. Carmo sexta-feira, 20 de agosto de 2010 19:43
-
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- Marcado como Resposta Thiago A. E. Carmo sexta-feira, 20 de agosto de 2010 19:43