Superando “Group Bloat” no Active Directory com o ADManager Plus

A maioria dos ambientes do Active Directory possuem um problema comun. Esse problema é o “Group Bloat”!  O conceito deste problema é quando muitas pessoas tem permissão para criar grupos do AD sem nenhum controle tendo como resultado, um ambiente de Active Directory com muitos grupos. Há alguns grupos que possuem exatamente os mesmos membros, mas são tratados como se os membros do grupo fossem diferentes. Há outros grupos que foram criados e nunca usados. Muitos desses grupos são vazios.

Uma tentativa manual para encontrar grupos vazios é um tedioso e doloroso trabalho. É possível, mas leva muito tempo!

Então eu fui para a internet para tentar encontrar uma opção de linha de comando fácil de obter uma listagem de grupos vazios. Abaixo estão alguns dos comandos sugeridos que resultaram em uma lista de grupos vazios:

Primeiro:

Get-ADGroup -Filter {GroupCategory –eq ‘Security’} | Where-Object {@(Get-ADGroupMember $_).Length –eq 0}

Segundo:

‘Define Constants

Const ADS_SCOPE_SUBTREE = 2 ‘ Search target object and all sub level

‘Set Variables

DQ = Chr(34) ‘Double Quote

‘Create Objects

Set objShell = CreateObject(“Wscript.Shell”)

‘Verifies script was run using CSCRIPT, and if not relaunches it using CSCRIPT

If Not WScript.FullName = WScript.Path & “\cscript.exe” Then

objShell.Popup “Launched using wscript. Relaunching…”, 5, “WSCRIPT“

objShell.Run “cmd.exe /k ” & WScript.Path & “\cscript.exe //NOLOGO ” & _

DQ & WScript.scriptFullName & DQ, 1, False

WScript.Quit 0

End If

‘Construct an ADsPath to the Current Domain with rootDSE

Set objRootDSE = GetObject(“LDAP://rootDSE“)

strADsPath = “LDAP://” & objRootDSE.Get(“defaultNamingContext“)

‘Connect to Active Directory

Set objConnection = CreateObject(“ADODB.Connection”)

Set objCommand = CreateObject(“ADODB.Command”)

objConnection.Provider = “ADsDSOObject“

objConnection.Open “Active Directory Provider”

Set objCommand.ActiveConnection = objConnection

objCommand.Properties(“Page Size”) = 1000

objCommand.Properties(“Searchscope“) = ADS_SCOPE_SUBTREE

objCommand.CommandText = “SELECT ADsPath,member FROM ‘” & strADsPath & _

“‘” & “ WHERE objectClass=’group’”

Set objRecordSet = objCommand.Execute

If objRecordSet.EOF Then

WScript.echo “Error, no groups found”

WScript.quit

Else

WScript.Echo “List of empty groups”

WScript.Echo “=============================================================”

objRecordSet.MoveFirst

Do Until objRecordSet.EOF

strGroupName = objRecordSet.Fields(“ADsPath“).Value

arrMembers = objRecordSet.Fields(“member”).Value

If IsNull(arrMembers) Then

WScript.Echo strGroupName

 

End If

objRecordSet.MoveNext

Loop

End If

 

WScript.Echo “Script has finished”

Terceiro:

Get-QADGroup –GroupType Security –SizeLimit 0 | where-object {$_.Members.Count –eq 0 -and $_.MemberOf.Count –eq 0} | select GroupName, ParentContainer | Export-Csv c:\emptygroups.csv

Loucura certo? Para achar grupos vazios termos de usar todos os esses comandos?!!! Agora, eu tenho certeza que existem outras opções, mas estes são os primeiros que eu encontrei. Com base no que eu vejo, estes não são apenas comandos “plug and play”! Haverá muitas iterações na tentativa de fazer funcionar em seu ambiente.

Em vez de punir-se com tais comandos dolorosos e tentar trabalhar com eles, por que não usar uma solução simples, “com um clique” como você tem em ADManager Plus da ManageEngine? Olhe para as Figuras 1 e 2 para ver o que eu quero dizer.

ad_1

Figura 1. Relatórios de Grupos do ADManager Plus

ad_2

Figura 2. Relatório de Grupos Sem Membros do ADManager Plus

A partir desta lista, você pode clicar em qualquer grupo e modificá-lo. Você pode selecionar e apagar múltiplos membros do grupo. Você pode salvar a lista em quase qualquer formato que você quiser. Você pode até mesmo mover os grupos para uma unidade de organização especial para fins de organização.

Diga-me que não é mais fácil do que tentar descobrir como para obter a lista e, em seguida, manipular o conteúdo de uma lista usando um comando! Entre em contato conosco para que possamos apresentar melhor o ADManager Plus e lhe auxiliar em seu testes, a equipe ACSoftware terá o prazer em lhe auxiliar. Até a próxima!

ACSoftware – Distribuidor e Revenda ManageEngine no Brasil.

Fone: (11) 4063 1007 – Vendas: (11) 4063 9639

Deixe um comentário

Blog ACSoftware - ManageEngine