Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a CSV file with a list of users' first and last names, with column headers as Firstname and Surname. I'm trying to extract these users' usernames from the directory by importing the CSV file using Import-CSV, then using Get-ADUser.

Here is what I have so far:

$names = Import-CSV C:\path\to.csv
ForEach ($Name in $Names) { Get-ADUser -Filter { GivenName -like "$Name.Firstname" } }

This returns no results, but no errors either.

Ultimately, the command should compare both first name and surname, but as I can't get it to work with one field I thought it best not to complicate it by trying to compare two!

share|improve this question
Just like to point out that this won't necessarily give you accurate results, depending on the number of users you have, and the variety of first,last combinations. That is, a given first,last combination won't necessarily be unique with the absence of a qualifying value (e.g.: middle initial). Cheers. – Simon Catlin Sep 16 '13 at 17:04
@SimonCatlin I had thought that it would: running something like Get-ADUser -Filter { GivenName -like "John" } does return all of the users whose first name is John... unless I'm missing something? – toryan Sep 16 '13 at 18:05
up vote 1 down vote accepted

Add as the first line of your CSV file a row containing the column headers for your file. You then use those headers as the property names when iterating through the file.

So your file should look something like:


Then your code should work as is.

Also, the filter seems not to like $Name.lastname. I'm not sure exactly why, but even property expansion is not doing the trick. If you collapse this into a single string variable it work:

$names = Import-CSV C:\path\to.csv
ForEach ($Name in $Names)
    $nameFilter = $Name.Firstname
    Get-ADUser -Filter { GivenName -like $nameFilter }
share|improve this answer
The CSV file has column headers. They are 'Firstname' and 'Surname'. I should mention that the final command should compare both first name and surname, but given that searching for one field doesn't work it seems ambitious to try and search for two at this point! – toryan Sep 16 '13 at 18:02
@toryan It should work using the code from my edit. – squillman Sep 16 '13 at 18:35
This worked, thanks! – toryan Sep 17 '13 at 9:56

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.