Solved

powershell match get mailbox

Posted on 2015-02-11
8
143 Views
Last Modified: 2015-02-20
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
Comment
Question by:techdrive
  • 4
  • 3
8 Comments
 
LVL 17

Expert Comment

by:lruiz52
ID: 40603820
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
 
LVL 53

Expert Comment

by:Will Szymkowski
ID: 40603828
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
 

Author Comment

by:techdrive
ID: 40603841
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
Best Practices: Disaster Recovery Testing

Besides backup, any IT division should have a disaster recovery plan. You will find a few tips below relating to the development of such a plan and to what issues one should pay special attention in the course of backup planning.

 
LVL 53

Expert Comment

by:Will Szymkowski
ID: 40603851
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
 

Author Comment

by:techdrive
ID: 40603953
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
 
LVL 53

Accepted Solution

by:
Will Szymkowski earned 500 total points
ID: 40604665
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
 

Author Comment

by:techdrive
ID: 40604835
thanks i was actually thinking of settling for excel. It seems to be the best way to do this.
0
 
LVL 53

Expert Comment

by:Will Szymkowski
ID: 40604843
Yeah why over complicate things if you are already exporting it to a csv.

Will.
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

This article will help you understand what HashTables are and how to use them in PowerShell.
Read this checklist to learn more about the 15 things you should never include in an email signature.
In this video we show how to create an Address List in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.: First we need to log into the Exchange Admin Center. Navigate to the Organization >> Ad…
The basic steps you have just learned will be implemented in this video. The basic steps are shown to configure an Exchange DAG in a live working Exchange Server Environment and manage the same (Exchange Server 2010 Software is used in a Windows Ser…

777 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