In our day-to-day task, we may come across scenarios to get active directory users belong to some specific OU or search ad users with UPN suffix. In PowerShell, we can get ad users filter by userprincipalname or upn. Using get ad user userprincipalname property, get a specific users from Active Directory, get aduser filter by distinguished name in PowerShell.
PowerShell Get-ADUser cmdlet is used to get a specified user or gets all or multiple users objects. Using Get-ADUser, you can get a list of all users in a container or get a filtered list of users. Identity parameter is used to get specific Active Directory users.
You can get aduser object using its Security Account Manager (samaccountname), distinguished name, SID, or GUID. Using Get-ADUser -Identity, you can get all of the properties for a specific user using Properties. You can get active directory user filter by user principal name.

To use PowerShell Get-ADUser cmdlet, it requires ActiveDirectory an
add-on module to be installed
In Active Directory, UserPrincipalName (UPN) is the name of a system user in email address format. UPN (for example… [email protected]) consists of a username, separator (@ symbol), and UPN suffix. UPN might not be the same as email.
In this article, we will discuss step by step to get active directory users by userprincipalname with examples.
Get-AdUser Filter UserPrincipalName suffix
In some cases, we have a requirement to get aduser with a certain upn suffix or upn is specific domain, we can easily do it using the PowerShell Get-AdUser filter command.
Let’s consider below get aduser filter userprincipalname like specific organization unit and upn suffix.
Get-AdUser
by userprincipalname
(upn) suffix and specific Organizational Units (OU
) can be done easily with the below command.
$OrgUnit = "OU=Sales,DC=SHELLPRO,DC=LOCAL" $UPNSuffix = 'SHELLPRO.LOCAL' Get-ADUser -Filter "userPrincipalName -like '*$UPNSuffix'" -SearchBase $OrgUnit
In the above userprincipalname example using PowerShell get-aduser filter command, it returns active directory users from organizational unit (OU)
and get aduser where userprincipalname like provided UPNSuffix.
The output of above get-aduser using userprincipalname as below

Bulk update aduser based on userprincipalname (upn)
In some cases, we want to bulk update active directory users with some attributes like bulk update users department as there is some organizational change.
Let’s consider if we have list all active directory users in CSV file for whom we want to update their department name based on userprincipalname
(upn).
# import csv file having user information and use Foreach to iterate objects import-csv D:\PowerShell\ActiveDirectoryGroupList.csv | ForEach-Object { Get-ADUser -Filter{UserPrincipalName -eq $($_.UserPrincipalName)} | Set-ADUser -Replace @{Department="$($_.Department)"} }
In the above get aduser by upn example, we first import CSV using Import-CSV having active directory user information like their name, displayname, userprincipalname, Department, etc..
We then user For-Each
to iterate each active directory user from CSV and use Get-AdUser
cmdlet to get aduser filter by userprincipalname
, returned user.
The returned user then pass through using pipe (|) operator to Set-ADUser cmdlet to update ad user Department using Department name read from CSV file.
Get UPN from Get-AdGroupMember
To get aduser userprincipalname upn using Get-AdGroupMember, use below simple command
Get-ADGroupmember -identity "Administrators" | % { get-aduser $_.samaccountname} | select name,userprincipalname | Export-csv -path C:\PowerShell\upn.csv -NoTypeInformation
In the above PowerShell get-aduser properties example, it finds and get upn from Get AdGroup Member having group name Administrators and export the list to csv file.
PowerShell Get Current User upn
In PowerShell to get upn of current user, run below command
Get-ADUser -Identity $env:USERNAME -Properties *| Select DisplayName, EmailAddress,UserPrincipalName
In the above PowerShell userprincipalname example, Get-ADUser cmdlet uses $env:USERNAME
to get current user logged on to system and use Properties * to select all additional properties for the user.
Second command uses Select
to display email address, displayname and current user upn as below

Cool Tip: Using PowerShell search-adaccount to find accounts that are locked out!
Get-AdUsers using UPN FAQ
Using PowerShell Get-Aduser cmdlet you can get active directory user information. Get-Aduser has userprincipalname property, using get-aduser upn, you will get userprincipalname value from active directory object.
Get-ADGroupmember -identity salesleader | % { get-aduser $_.samaccountname} | Select Name,UserPrincipalName
In the above PowerShell get all users filter by userprincipalname script, it returns all ad users from adgroup.
Cool Tip: How to use PowerShell Set-ADUser to modify Active Directory user attributes.
Conclusion
In the above article, I have explained how to get PowerShell ad user based on userprincipalname (upn) and bulk update ad user when upn like certain specific domain and
I hope the above article may help you to get aduser filter by userprincipalname or upn. You can read more about to find UPN suffix in the active directory and if not available then add upn suffix in active directory using PowerShell and GUI application.
Read more about on get-aduser blog posts where I explained to get-aduser by email, get aduser properties, get-aduser filter from specific ou
You can find more topics about PowerShell Active Directory commands and PowerShell basics on ShellGeek home page.