Powershell - Batch Locate AD User Object > Object Tab

Mike Dias
Mike Dias used Ask the Experts™
on
I have over 80 users that I need to locate their OU container name, in preparation to move them to one container.

The users are in a txt and CSV file.

Is there a PS script that will process the check and move?
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
AlanConsultant

Commented:
Hi Mike,

It would be easier if you could post a sample of the csv file (just perhaps three rows, and feel free to obfuscate as long as you don't change the structure of the data).

Thanks,

Alan.

Author

Commented:
The CSV has 1 cell - A1 with the AD user's username i.e. firstname.lastname. There are over 80 such users, from A1 to A83..

You could create the same effect with cell A1 with "test.user1," "test.user2," ... "test.user3" etc. It'd be the same.

Hope this helps.
AlanConsultant

Commented:
Okay - that format is not what I would expect for a CSV file.

Where did it come from?

Alan.
Rowby Goren Makes an Impact on Screen and Online

Learn about longtime user Rowby Goren and his great contributions to the site. We explore his method for posing questions that are likely to yield a solution, and take a look at how his career transformed from a Hollywood writer to a website entrepreneur.

Author

Commented:
Hi Alan. The source was from a department  that assumed control of a number of users. They've only provided me with their names. I asked for more specific data and was given their usernames.
AlanConsultant

Commented:
I think you'll need to convert it to a standard CSV format before you can use it.

Author

Commented:
Ok. So I need a solution.

How do I script this in Powershell?
AlanConsultant

Commented:
Hi Mike,

As I said, the first thing you need to do is fix the CSV file so it is in a more 'standard' format.

One way to check that is to open it in Excel (if you have that available), and see if it comes out 'nicely'.

What you posted above definitely does not.  The first element has a quote mark in front of it, and the subsequent elements have a leading space.  Those will cause PowerShell to fail to find the users, since the identifier won't match.

If you have Excel, open the attached - see how it comes out?

Alan.
EE-29065283-SampleData.csv

Author

Commented:
Hi Alan.

The CSV has 1 cell - A1 with the AD user's username i.e. firstname.lastname

There are no inverted commas, or spaces before or after. That was an expression I used above. The cell A1 is test.user1 cell A2 is test.user2 and so on.
AlanConsultant

Commented:
Hi Mike,

I copied what you posted:

"test.user1," "test.user2," ... "test.user3"

I took out the three dots as I assumed you meant it went on in the same format, and then created a CSV file using that format as attached (just re-did it again in case I made a mistake before).

If you open this in Excel, do you see the leading quote mark, and the leading spaces in each cell from the second one on?

Maybe I am missing something obvious here, but it does not appear to be a standard CSV format to me, and hence I cannot see how PowerShell will be able to parse it and match to actual usernames.


Alan.
EE-29065283-SampleData.csv
Qlemo"Batchelor", Developer and EE Topic Advisor
Top Expert 2015

Commented:
Having a single column in a file makes it just a text file ;-). A CSV has more than one column.
We can treat both formats easily. What we need to know is whether there is a header line or not.
"Batchelor", Developer and EE Topic Advisor
Top Expert 2015
Commented:
Assuming a simple text file with no header:
Get-Content Users.txt | % { Get-ADUser $_ } | select SamAccountName, DistinguishedName

Open in new window

AlanConsultant

Commented:
@Qlemo:

Does that work for you with the sample data file above (renamed as users.txt)?


Alan.
Qlemo"Batchelor", Developer and EE Topic Advisor
Top Expert 2015

Commented:
Certainly not with your last one, but that has been indicated as not being correct anyway.
AlanConsultant

Commented:
Hi Qlemo,

The OP specifically said that *is* the format of the CSV file.

What makes you say otherwise?

Thanks,

Alan.
Qlemo"Batchelor", Developer and EE Topic Advisor
Top Expert 2015

Commented:
#a42347377 says so, Alan. It's just a file with one name per line.
AlanConsultant

Commented:
Okay - I'm going to leave this guy with you.

Seems like they went out of their way to make things difficult for no good reason.

Good luck.

Alan.

Author

Commented:
Concise answer. Simple to use.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial