[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 774
  • 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
The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

 
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

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

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