<#Created By - Abhishek Bansal
Read Note
Script Usage :: Fetching AD Group membership containing large number of members. There are cases where Get-ADGroupMember fails. ( More then 5K /6K ). Script is capable of exporting not only users objects but others too. ( Ex Groups ).
Pre requisites :: Copy all the code into a text file, save it with an extension ".PS1". Once saved run it with Admin rights.
Execution & Outputs :: User need to input AD Group name when prompt & results can be checked in Groupname_Membership.csv file. #>
$group = Read-Host "Enter AD Group Name = "
$dn = Get-ADGroup -Identity $group -Properties * | Select objectClass -ExpandProperty Member
$line = 0
$linecount = $dn.Count
$percentagecomplete= 0
foreach($row in $dn)
{
$line++
$percentagecomplete = ($line/$linecount)*100
$row = $row.trim()
Write-Progress -Activity "Checking Status.." -PercentComplete $percentagecomplete -Status "$line out of $linecount"
Get-ADObject -Properties * -Filter{DistinguishedName -like $row} | Select Name,Samaccountname,@{n="Member Category";e={$_.ObjectClass}} | Export-Csv ./$group.Membership.csv -NoTypeInformation -Append
}