Export all group members of one or more particular groups in Active Directory Domain
You can Use this for Group Audit
Dear All,
I'll give you two different ways to export Domain Group members.
1. Simple way
Code:
csvde -f c:\Groups.csv -r "(sAMAccountName=CSRM-Web)" -l member
2. With powershell script,batch file
script will have three files groupaudit.bat ,groupaudit.ini and groupaudit.ps1 and all are on the same folder.
groupaudit.bat
Code:
@echo off
powershell .\groupaudit.ps1
groupaudit.ini
Code:
CN=GROUPNAME,OU=Groups,OU=Corp,DC=ChildDomainName,DC=EgyEng,DC=com
groupaudit.ps1
Code:
function Get-Members
{
param ($groupDN)
$nested = @()
$nesting = "false"
$nl = [Environment]::NewLine
$group = [ADSI] "LDAP://$groupDN"
$retval = "Members of group: " + $group.cn + " (" + $group.distinguishedName + ")"
foreach ($member in $group.member)
{
$user = new-object directoryservices.directoryentry("LDAP://$member")
if ($user.objectclass -contains "group")
{
$retval = $retval + $nl + "+" + $user.cn
$nesting = "true"
$nested += $user.distinguishedname
}
else
{
$retval = $retval + $nl + $user.SAMAccountName
}
}
if ($nesting -contains "true")
{
$retval = $retval + $nl + $nl + "Nested Group Members:"
foreach ($g in $nested)
{
$retval += $nl
$retval += Get-Members($g)
$retval += $nl
}
}
return $retval
}
foreach ($line in Get-Content ".\groupaudit.ini")
{
$output = ""
$groupDN = $line
$group = [ADSI] "LDAP://$groupDN"
$groupName = $group.cn
$runDate = Get-Date -format "yyyyMMdd-HHmmss"
$outfile = ".\" + $groupName + "_" + $runDate + ".txt"
Get-Members($groupDN) | Out-File -FilePath $outfile
}
Code:
$retval = $retval + $nl + $user.SAMAccountName
Also you can export a .csv file instead of .txt by change the line
Code:
$outfile = ".\" + $groupName + "_" + $runDate + ".txt"
i uploaded the full folder in the below link.
http://www.4shared.com/rar/rOOQBZEd/groupaudit.html
Comments
Post a Comment