Home > Back-end >  Pulling Users Emails with PowerShell Script
Pulling Users Emails with PowerShell Script

Time:10-27

I have script that will search within an OU and display username, names, AD group and description.

$ou = 'distinguishedName of the OU'
Get-ADGroup -Filter * -SearchBase $ou -Properties Description | ForEach-Object {
    foreach($member in Get-ADGroupMember $_) {
        [pscustomobject]@{
            SamAccountName = $member.SamAccountName
            Name           = $member.Name
            GroupName      = $_.Name
            Description    = $_.Description
        }
    }
} | Export-csv C:\Users\MyUsername\Desktop\NameOfMyFile.csv -NoTypeInformation 

Going off research I believe I have to use Get-ADUser and mail attribute.

Something like:

($members in Get-ADUser $1)

Email      = $1.mail 

I have tried to alter this code and failed miserably.

Please could anyone assist?

CodePudding user response:

If you're looking for just user object membership, instead of using Get-ADGroupMember you can use Get-ADUser querying for "users which's MemberOf attribute is equal to the group's DistinguishedName":

$ou = 'distinguishedName of the OU'
Get-ADGroup -Filter * -SearchBase $ou -Properties Description | ForEach-Object {
    $params = @{
        LDAPFilter = '(memberof={0})' -f $_.DistinguishedName
        Properties = 'mail'
    }
    foreach($member in Get-ADUser @params) {
        [pscustomobject]@{
            SamAccountName = $member.SamAccountName
            Name           = $member.Name
            Mail           = $member.Mail
            GroupName      = $_.Name
            Description    = $_.Description
        }
    }
} | Export-csv C:\Users\MyUsername\Desktop\NameOfMyFile.csv -NoTypeInformation
  • Related