HOWTO: Quick Lookups for Active Directory User Details

I’ve recently started a new job at a large company with thousands of employees and so I have a constant need for looking up who people are, what their user name is, who their manager is, what city they are in, etc? In many cases, I have to look up entire batches of people. Initially I just using Active Directory Users and Computers and searching each user and then going to each tab for the details I need. After a few times of that though, I found the process maddeningly inefficient and decided to automate it.

The script below is pretty simple but it does have a few cool features.  First off, to get user details, all you need to do is copy and paste your list of names red box area and run the script.  There can be one name or many.  They can be SAMaccountnames, display names or canonical names, it doesn’t matter as the script will figure it out and display the results in a table.  Second, normally with Powershell, you have to encapsulate each name in quotations.  Since I’m often copying and pasting the names from other sources, this adds extra busy work.  My script obsoletes that and allows you to paste in the plain text and it’ll automatically convert it into an object PowerShell can use. Lastly, it’s pulling data that otherwise requires access to at least 3 different tabs in ADUC to view.

It’s otherwise nothing fancy.  The idea for me is that since I always have PowerGUI (my PowerShell IDE of choice) open anyway, I can just alt-tab and quickly paste in the names, press F5 to run the script and figure out who does what.  It’s been incredibly useful for me already so I figured I’d share.

userdetails

 

$UsersRaw = @("

Samaccountname
Display Name
Canonical Name

"); $Users = ($UsersRaw -split '[\r\n]') |? {$_}

$Users | % { Get-ADUser -Properties department, Description, title, office, city, manager -Filter {cn -eq $_ -or samaccountname -eq $_ -or displayname -eq $_ } } |
select Name, Samaccountname, Title, Description, Department, Office, City, @{n="Manager";e={($_.manager.Substring(3) -split ",")[0]}} | Format-Table

Leave a Reply

Your email address will not be published.