Solved

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

Posted on 2009-05-08
3
693 Views
Last Modified: 2012-05-06
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
Comment
Question by:cnrlzen
3 Comments
 
LVL 70

Accepted Solution

by:
Chris Dent earned 500 total points
ID: 24352520

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
 

Author Closing Comment

by:cnrlzen
ID: 31579683
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

Featured Post

Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Is your Office 365 signature not working the way you want it to? Are signature updates taking up too much of your time? Let's run through the most common problems that an IT administrator can encounter when dealing with Office 365 email signatures.
The Nano Server Image Builder helps you create a custom Nano Server image and bootable USB media with the aid of a graphical interface. Based on the inputs you provide, it generates images for deployment and creates reusable PowerShell scripts that …
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …

829 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question