Link to home
Start Free TrialLog in
Avatar of get-ADuser -F ($_.Name -eq "Todd")
get-ADuser -F ($_.Name -eq "Todd")Flag for United States of America

asked on

Using Powershell to retrieve mail attributes

I need some help.  I am trying to use Get-ADuser cmdlet to retrieve the mail attributes of each user.  What I would really like is to just export into a .csv the name and the mail attribute.  I tried this using ISE.

import-module ActiveDirectory
Get-ADuser -filter * -properties mail| Export-Csv C:\temp\Computer.csv

That way I could modify the .csv but it did not import the mail.  Really could use some help. Thanks much in advance.
Avatar of Dan McFadden
Dan McFadden
Flag of United States of America image

I would use the following:

Get-ADUser -filter * -SearchBase "OU=Your,OU=Structure,OU=GoesHere,DC=YouDomainName,DC=Extension" -Properties * | select Name, SamAccountName, UserPrincipalName, EmailAddress | Export-Csv EmailAddresses.csv -noTypeInformation -UseCulture

Open in new window


Just update the SearchBase value and run.

Dan
A slight cleaner version of this would be:

import-module ActiveDirectory
$SearchBase = "OU=Your,OU=Structure,OU=GoesHere,DC=YouDomainName,DC=Extension"
$SearchScopeControl = "OneLevel"
$OutputFile = "MyOutputFile.csv"

Get-ADUser -filter * -SearchBase $SearchBase -SearchScope $SearchScopeControl -Properties * | select Name, SamAccountName, UserPrincipalName, EmailAddress | Export-Csv EmailAddresses.csv -noTypeInformation -UseCulture

Open in new window


This does the same as the first post, but it is easier to edit when you want to reuse it.  And the "SearchScope" option let's you control how deep in the OU structure the script runs.

Options for $SearchScopeControl are:
1. Base
2. OneLevel
3. Subtree

From Microsoft:
A Base query searches only the current path or object. A OneLevel query searches the immediate children of that path or object. A Subtree query searches the current path or object and all children of that path or object

Reference Link:  http://technet.microsoft.com/en-us/library/ee617241.aspx

Dan
Avatar of get-ADuser -F ($_.Name -eq "Todd")

ASKER

Put in the information from Powershell ISE.  But where is the csv?  Does it have something to do with this?  Do I = it to something?

$OutputFile = "MyOutputFile.csv"
Nevermind,,,,, I'm and idiot worked great!!!!!!  Thank you
Going to close this out.  Just curious.  But what does this mean?

$OutputFile = "MyOutputFile.csv" ,  where do I stick this variable at if I use it,, or is it being used?
ASKER CERTIFIED SOLUTION
Avatar of Dan McFadden
Dan McFadden
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
You are awesome...  I know those long days too.  But go into the weekend that you really helped me out with this!!!!!!   Much appreciated,,, and thank you so much.
Expert knows his stuff.  Hope all people with questions can find him.
HELP,,,,  need one more thing.  I have OU's that equal *Laptops, and under that I have Laptop Users OU.  I have this

import-module ActiveDirectory
$SearchBase = "OU=*Laptops,OU=Laptop Users,DC=oxarc1,DC=int"
$SearchScopeControl = "OneLevel"
$OutputFile = "C:\temp\EmailAddresses.csv"
Get-ADUser -filter * -SearchBase $SearchBase -SearchScope $SearchScopeControl -Properties * | select Name, SamAccountName, UserPrincipalName, EmailAddress| Export-Csv $OutputFile -noTypeInformation -UseCulture

But I get this error.  

Get-ADUser : Directory object not found
At C:\Users\tmb.OXARC1\Documents\Script_Commands\attibutesbysearchbase.ps1:5 char:11
+ Get-ADUser <<<<  -filter * -SearchBase $SearchBase -SearchScope $SearchScopeControl -Properties * | select Name, SamAccountName, UserPrincipalName, EmailAddress| Export-Csv $OutputFile -noTypeInformation -UseCulture
    + CategoryInfo          : ObjectNotFound: (:) [Get-ADUser], ADIdentityNotFoundException
    + FullyQualifiedErrorId : Directory object not found,Microsoft.ActiveDirectory.Management.Commands.GetADUser
 
I hope this pasted right on this comment box.  But it works with *Laptops OU but not the OU underneath *Laptops which is Laptop Users.   I tried all three scopeControls but it didn't work.  

Can you help me one last time?
Nevermind.  I got it.  I see better how it works.  I have to only put the base OU,  then change the value of $SearchScopeControl.   Getting better at it.  Only question then is,  If I have 4 sub OU's in *Laptops  how to I get only 1 Sub OU that I need.  e.g.  OU=*Laptops, but I only want Laptop Users is Spokane or Yakima.  OU structure would be "OU=*Laptops,OU=Yakima Users". <-----  Only want Yakima not Spokane which is also in the *Laptops OU?     Hope I made sense.