#Created By - Abhishek Bansal
<#Read Me !!
1. Script Usage - Fetching User details along with User Manager name & email ID from AD.
2. User Sammacount name needs to be provided in Input.txt
3. Try Catch block is used to filter out Users not found in AD. Use Name columns to filter the output.
4. Refer Output.csv for final results.
For using it, directly copy the entire code, save it in .ps1 extension and have a Input.txt file on the same location.
#>
function getdetails($mgrdn)
{
$mgrdata = Get-ADUser -Properties * -Filter{DistinguishedName -like $mgrdn} | Select Samaccountname,Name,EmailAddress
return $mgrdata
}
$inputuser = Get-Content ./Input.txt
$line = 0
$linecount = $inputuser.count
$percentagecomplete= 0
foreach($userid in $inputuser)
{
$line++
$percentagecomplete = ($line / $linecount) * 100
$userid = $userid.trim()
Write-Progress -Activity "Checking Status.." -PercentComplete $percentagecomplete -Status "$line out of $linecount"
[String]$dn = (Get-ADUser -Properties * -Identity $userid).Manager
$managerdetails = getdetails -mgrdn "$dn"
$Error.Clear()
try
{
Get-ADUser -Properties * -Identity $userid | Select Samaccountname,Name,EmailAddress,co,@{n="Manager_Samaccountname";e={$managerdetails.Samaccountname}},@{n="Manger Name";e={$managerdetails.Name}},@{n="Manager Mail";e={$managerdetails.EmailAddress}} | Export-Csv ./Output.csv -NoTypeInformation -Append
}
catch [Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException]
{
$userid | Select @{n="Samaccountname";e={$userid}},@{n="Name";e={$Error.Exception.Message}},EmailAddress,co,@{n="Manager_Samaccountname";e={}},@{n="Manger Name";e={}},@{n="Manager Mail";e={}} | Export-Csv ./Output.csv -NoTypeInformation -Append
}
}