• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 707
  • Last Modified:

Add many users to many different groups in Active Directory using Powershell, reading from a tab-delimited file.

I need to assign many users to many groups in Active Directory using a tab-delimited TXT file as the source. I would prefer to use Powershell as I am trying to learn it. Using Powershell v1.0 on Windows XP Sp2. An example of the file I would use is attached.

Much thanks!
Import-CSV.txt
0
cnrlzen
Asked:
cnrlzen
1 Solution
 
Chris DentPowerShell DeveloperCommented:

Morning :)

Weekends are a bit quiet, and very few of us answer PowerShell questions hence the late reply.

I recommend grabbing the Quest PowerShell CmdLets from here:

http://www.quest.com/powershell/

They're free and will make this task a lot simpler. It is, of course, entirely possible to do this in native PowerShell, just longer.

One more note. You'll find that Comma Delimited formatting is easier to deal with than Tab Delimited. With Comma Delimited you can use Import-CSV and refer to each line by the name in the header.

Anyway, Examples...

These are rather verbose, unnecessarily so, but I figured demonstrating was more important than fitting it onto a line.

Chris
# Using Get-Content to read the text file
$FileContent = Get-Content "Test.txt"
 
# Removing the header line by getting elements 1 to end from the array
# Count uses 1 as the base, where an array uses 0; hence "Count - 1"
$FileContent = $FileContent[1..$($FileContent.Count - 1)]
 
# Looping through the Content
ForEach ($Line in $FileContent) {
  # Splitting the line into each element `t is Tab.
  $LineArray = $Line.Split("`t")
 
  # Getting the elements
  $UserDN = $LineArray[0]
  $GroupDN = $LineArray[1]
 
  # Using Add-QADGroupMember to add the member to the group
  Add-QADGroupMember $GroupDN -Member $UserDN -WhatIf
}
 
# If you had a CSV File as input you could do this in one line
# In the example below % is an alias for ForEach-Object
 
Import-CSV "Test.csv" | %{ Add-QADGroupMember $_.memberOf -Member $_.distinguishedName }

Open in new window

0
 
cnrlzenAuthor Commented:
That's great - I used a reformatted CSV file and it worked well. How can I log any errors and the successes of each action to a log file so I know where failures might occur?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Protect Your Employees from Wi-Fi Threats

As Wi-Fi growth and popularity continues to climb, not everyone understands the risks that come with connecting to public Wi-Fi or even offering Wi-Fi to employees, visitors and guests. Download the resource kit to make sure your safe wherever business takes you!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now