Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 224
  • Last Modified:

powershell match get mailbox

I have been tasked with trying to locate all the alias and verify that the smtp address matches with each account. The issue is I am doing this by hand and with many accounts it will take a while.
what powershell command will allow me to match the aliasname with the primarysmtpaddress

I am stuck and cannot get beyond this point.

get-mailbox -resultsize:unlimited
0
techdrive
Asked:
techdrive
  • 4
  • 3
1 Solution
 
lruiz52Commented:
Try something like;

Get-Mailbox -resultsize unlimited | Select Name, Alias, PrimarySMTPAddress, @{Name='EmailAddresses';Expression={[string]::join(";", ($_.EmailAddresses -match 'SMTP'))}} | Export-CSV c:\EmailAddress.csv
0
 
Will SzymkowskiSenior Solution ArchitectCommented:
Use the below command below...

On Screen
$Users = get-content "c:\users.txt"
Foreach ($User in $Users) {
Get-Mailbox -Identity $User | select DisplayName, PrimarySMTPAddress
}

Open in new window


To CSV FIle
$Users = get-content "c:\users.txt"
Foreach ($User in $Users) {
Get-Mailbox -Identity $User | select DisplayName, PrimarySMTPAddress | out-file "c:\userSMTPAddresses.csv" -append
}

Open in new window

0
 
techdriveAuthor Commented:
thanks will but may I also add. Looking for something that would automate this instead of eye balling. I guess I would have to remove the domain @company.com because the alias is suppose to match the primarysmtpaddress and if it does not I would like a report.
0
Evaluating UTMs? Here's what you need to know!

Evaluating a UTM appliance and vendor can prove to be an overwhelming exercise.  How can you make sure that you're getting the security that your organization needs without breaking the bank? Check out our UTM Buyer's Guide for more information on what you should be looking for!

 
Will SzymkowskiSenior Solution ArchitectCommented:
You can use any of the following methods to look up a mailbox using the Identity parameter.

-Identity <MailboxIdParameter>
    The Identity parameter identifies the mailbox. You can use one of the following values:
    * GUID
    * Distinguished name (DN)
    * Domain\Account
    * User principal name (UPN)
    * LegacyExchangeDN
    * SmtpAddress
    * Alias

    Required?                    false
    Position?                    1
    Default value
    Accept pipeline input?       True
    Accept wildcard characters?  true

Will.
0
 
techdriveAuthor Commented:
Let me clarify I might not be coming across clearly.Iruiz52 is somewhat close to what I am asking.

This below is a good idea but will not work

Get-mailbox | select name, ($_.alias -match $_.primarysmtpaddress)

1) I wanted something that while its processing this would at least when doing the comparison would filter out the domain name@company.com and then that way would be able to compare the alias in which we have firstname.lastname to the primarysmtpaddress firstname.lastname@company.com which would by powershell do the comparison for me.


So here is my data in theory in exchange and how it sees this.

               alias                                                                                primarysmtpaddress
     firstname.lastname                                                          firstname.lastname@somecompany.com
     dollar.bill                                                                           dollar.bill@somecompany.com
     jane.doe                                                                             jane.doe@somecompany.com


Step 1 would like for the somecompany.com to be removed so that it can filter it properly. NOT in the exchange environment but some substring for processing.


             alias                                                                                primarysmtpaddress
     firstname.lastname                                                          firstname.lastname
     dollar.bill                                                                           dollar.bill
     jane.doe                                                                             jane.doe

Now its the same now and powershell can compare the alias vs the primarysmtpaddress and anything that does not matches comes back and reports.
0
 
Will SzymkowskiSenior Solution ArchitectCommented:
Personally this matching would be much quicker in excel. When you have your values in Excel for Alias and SMTPAddress just highlight the SMTPAddress column select Find/Replace. Then Find @domain.com, replace leave "blank" (this will remove the @domain.com from the SMTPAddress.

From there all you need to do is click the Data Tab and select "remove duplicates" it will remove all of the entries that are the same and leave you with the ones that are not.

Not exactly what you were looking for in a script format but another way of doing this.

Use the script below to export Alias and PrimarySMTPAddress.
get-mailbox -resultsize "unlimited" | select Alias, PrimarySMTPAddress | Export-csv "c:\compairusers.csv" -nti

Open in new window


Will.
0
 
techdriveAuthor Commented:
thanks i was actually thinking of settling for excel. It seems to be the best way to do this.
0
 
Will SzymkowskiSenior Solution ArchitectCommented:
Yeah why over complicate things if you are already exporting it to a csv.

Will.
0

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.

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