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

Need Help With Powershell Script

Hello. I am looking for some assistance creating a Powershell Script to do the following.

1. List all users of a specific group in active directory and write to an XLS

2. Then I want to use the users in the XLS and get the email  address's dumped to an XLS.

This is what I have found to start with, however it doesn't return any thing within PS.

$root=([ADSI]"").distinguishedName
$Group = [ADSI]("LDAP://CN=Domain Admins, CN=Users,"+ $root)
$Group.member




Any Powershell Guru's here ?

Thanks
0
MelittaChickadee
Asked:
MelittaChickadee
  • 5
  • 4
  • 2
1 Solution
 
Chris DentPowerShell DeveloperCommented:

I would approach it from the other way. Searching AD for the members allows us to return any property we might need in a single search.

HTH

Chris

$Root = [ADSI]""
 
# Construct the search filter
$Filter = "(memberOf=CN=Domain Admins,CN=Users," + $root.distinguishedName + ")"
 
# Create a searcher
$ADSearch = New-Object System.DirectoryServices.DirectorySearcher($Root, $Filter)
 
# Add properties we're interested in the to result set
$PropertyNo = $ADSearch.PropertiesToLoad.Add("sAMAccountName")
$PropertyNo = $ADSearch.PropertiesToLoad.Add("mail")
 
# Sort the results into an exportable object
$Results = $ADSearch.FindAll() | Select-Object `
  @{n="sAMAccountName";e={$_.Properties.samaccountname}}, `
  @{n="mail";e={$_.Properties.mail}}
 
# Write the output to a CSV
$Results | Export-CSV -Path "outputfile.csv"

Open in new window

0
 
BSonPoshCommented:
If you are going to be doing a lot of Active Directory stuff I would recommend using the free Quest cmdlets located here. www.quest.com/powershell

Then you can do something like
Get-QADGroupMember "Domain Admins" | select name,email | export-csv bleh.csv

Open in new window

0
 
Chris DentPowerShell DeveloperCommented:

Welcome back BSonPosh :) I thought we'd lost you for a while.

Chris
0
Simplify Active Directory Administration

Administration of Active Directory does not have to be hard.  Too often what should be a simple task is made more difficult than it needs to be.The solution?  Hyena from SystemTools Software.  With ease-of-use as well as powerful importing and bulk updating capabilities.

 
BSonPoshCommented:
I am here all the time :)

I just have been focusing on the Powershell questions.

You on the other hand have been quite busy :)
0
 
MelittaChickadeeAuthor Commented:
Hello Chris and BSonPosh,

I appreciate the help. When I run the script as is, I receive the folllowing:
Export-Csv : Cannot bind argument to parameter 'InputObject' because it is null.
At line:1 char:22
+ $Results | Export-CSV  <<<< -Path "outputfile.csv"

I would imagine I need to put some variables into this ?

Again, appreciate your help.
0
 
BSonPoshCommented:
That error implies that $results is NULL. Did you try my Quest example?
0
 
MelittaChickadeeAuthor Commented:
Hello BSonPosh,

Yes your recommendation to use Quest cmdlets work great!  I will give you the Accepted Solution. On a side note, how tough is it to do the following in PS using the Quest cmdlets ?

1. Search AD For any user with *whatever.com  email address, export to csv.
2. Then do a bulk edit to change with *.whomever.com email address.

-or-

1. Search AD for any user with *whatever.com email address then simply do a bulk edit to give them a new primary SMTP address of *.whomever.com ?

THoughts ? Again..appreciate your help!

Thanks,
Brian
0
 
BSonPoshCommented:
It would not be that complicated at all. Something like this [1]

[1] means I didn't test it

btw... I am starting a weekly series on www.turbochargead.org that will cover these cmdlets


$users = Get-Qaduser -ldapfilter "mail=*whatever.com" 
foreach($user in $users)
{
   $user | set-qaduser -objectattributes @{mail="$($user.name)@whomever.com"} -whatif
}

Open in new window

0
 
MelittaChickadeeAuthor Commented:
I am going to test out of prod , and I will let you know. Anyway I could get the results written to a csv?

Thanks,
0
 
BSonPoshCommented:
you can almost always use export-csv.

Get-Qaduser -ldapfilter "mail=*whatever.com" | export-csv myfile.csv
0
 
MelittaChickadeeAuthor Commented:
BSonPosh,

Ran the following :
Qaduser -ldapfilter "mail=*whatever.com"
foreach($user in $users)
{
   $user | set-qaduser -objectattributes @{mail="$($user.name)@whomever.com"} -whatif
}


Nothing happens...just returns me to a >>

Help ?


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

Creating Active Directory Users from a Text File

If your organization has a need to mass-create AD user accounts, watch this video to see how its done without the need for scripting or other unnecessary complexities.

  • 5
  • 4
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now