Recently I was taking an inventory of Distribution Lists in my messaging infrastructure, which lead me to take an additional step to look at the statistics about the total number of members and the usage of each group. As you would be wondering, it wouldn’t be as easy as we think if we plan to achieve it without a script. Here is one simple script, which let you extract the DL usage statistics with the following information,

-          The total number of users in each Distribution Group

-          The total number of times the group has used in the past number of days

Most Exchange Server Administrators keep the tracking log retention period as 30 or 60 days. Which means you will only be able to extract usage statistics for the past number of days equal to the message tracking log retention.

Permissions Required: You need to login as Server Admins to get the result or a user who has access to message tracking and Get-TransportServer cmdlet, as the script looks for all transport servers.

Download Script
How to Use?

You can run the script with or without specific parameters,


.\DLStatistics.ps1 [Get you ALL the DL Information with members and usage statistics for last 7 days]

.\DLStatistics.ps1 -Days [Usage Days] -filePath [Give the report Path]

    e.g. {.\DL_Usage_Stats.ps1 -Days 1 -filePath C:\scripts\Dev\}

DL Usage Examples1

    Default File Path is C:\Scripts and the Default usage days is 7 days 

Though the script can be run with n number of days duration, I suggest you to run it for a week to get a report faster. The following information will give you a fare idea about the total time the script takes to complete,

Total Number of Groups = ~100

Total Tracking Log Size (all servers) = 8GB

Total time taken = 1- 2 hours. 

Once you test the script succesfully, I suggest you to write a batch file and schedule it to run every week so that you can create statitical information for longer periods.

Download Script

The script can be easily modified to include general DL property field as per your requirements, add additional properties just after the following section similar to below,

$reportObj | Add-Member NoteProperty -Name "Group Name" -Value $DL.DisplayName
$reportObj | Add-Member NoteProperty -Name "Email Address" -Value $DL.PrimarySMTPAddress 

Ensure you keep the format similar to above, which should avoid any confusion at the end. It is important for you to know the Distribution Group property field name such as alias,ManagedBy etc. Get-DistributionGroup command can help you get all field names.

Share your comments to improve the script to match the regular requirements.

Download Script


Published in Solutions

Microsoft Exchange team has released Update Rollup 11 for Exchange Server 2010 SP3 & Cumulative Update 10 for Exchange Server 2013. As usual these updates are addressing number of customer reported issues. These updates are also should be considered as milestone updates for Exchange 2010 and Exchange 2013 respectively.

Download Cumulative Update 10 for Exchange Server 2013 (KB3078678) now.

Download Update Rollup 11 for Exchange Server 2010 SP3 (KB3078674)

Why these updates are important?

These updates are important for the customers with existing deployments who plan to upgrade the infrastructure to the Exchange Server 2016, which is expected to be released by end of this year. Update Rollup 11 for Exchange Server 2010 SP3 & Cumulative Update 10 for Exchange Server 2013 are the important pre-requisites for Exchange Server 2016 co-existence. No earlier versions of Exchange would support the co-existence with Exchange server 2016.

For more information, please go through the following reference links.

Released: September 2015 Quarterly Exchange Updates

Update Rollup 11 for Exchange Server 2010 Service Pack 3

Cumulative Update 10 for Exchange Server 2013


Published in News

We all know that the OWA page (ECP in purticular) has the option to update the user contact information. However, at time you might in need for a script to enable the similar feature, such as when the OWA feature is not available to all user. I had similar situation in my company, where the OWA feature is not enabled for ALL users, and forced to develop a small PS script which enables the users to update their on contact information self.

Download the Script Here

Following script gives you a sample, and can extend the fields according to your requirement. Below shows the interface that each user gets, and the username field is choosen authomatically from the user's login page. That makes it clear that the script can only run by the users who directly logged into domain joined computers with their network credentials.

 GAL Script

Download the Script Here

As you are aware, the unsigned script can not be executed from the user machine, unless you change the restriction setting of windows powershell. The following section discuss about how to by pass the powershell execution policy.

How to by pass Powershell Restriction

You may run the .ps1 script with the switch "Bypass" when running the command.

e.g. PowerShell.exe -NoProfile -nologo -ExecutionPolicy Bypass -File ./script.ps1

Or you may create a batch file (.bat) and call the ps1 script from it, sample batch file entry will look like this,

PowerShell.exe -NoProfile -nologo -ExecutionPolicy Bypass -Command "& '\\server\GAL\UpdatePhone_v2.PS1'"

Save the above line in a .bat file and run it from any computer.


Download the Script Here

Share you comments.



Published in Articles

Query: How to install Exchange Server 2010 Management Console on Windows 10 machine.

You need to follow the steps below to install Exchange Server 2010 Management Tools on a Windows 10 machine. As the RSAT version for Windows 10 is released by Microsoft now ( Remote Server Administration Tools (RSAT) for Windows 10 Released ), we are all set ready to install Exhange Management Console for Windows 10.

Install RSAT and additional pre-requisites manaully, because the availble Exchange Setup wizard pre-requisite install option (Automatically install Windows Server roles....) will no succeed.


-Install Windows 10 RSAT Remote Server Administration Tools (RSAT) for Windows 10 Released

- Install IIS Components


Now you are all set to run the Exchange Setup Wizard to isntall the Management Tools.

Start the Setup Wizard and choose the Custom wizard, and select only Management Tools option. Most importantly, do not select the Automatically install Windows Server roles.... option available at the bottom(see below).

EMConWin10 Option

Follow the wizard and complete the installation.


Enjoy, and share your experience.



Published in Solutions

As you are aware, by November 2015, the 3rd party SSL providers will stop supporting the internal domain names if you don’t own them publically. For example, if you use domain.local as internal domain, then please be aware that the 3rd party CAs will stop issuing certificates with these internal names with effect from November 2015. In simple words, you can only get SSL certificates for the domains you own publically as each domain names included in the SSL certificate should be validated against the domain ownership.


In order or to avoid service break down, you must reconfigure the internal service URLs to be trusted with a publically trusted domain OR you should use an Enterprise CA SSL for the internal service URL.

The later configuration, in my opinion, is bit more complicated because it would lead you to create separate traffic rules for internal and external messaging client. So, I suggest you to create a split DNS internally and reconfigure the Exchange internal URLs with the publically trusted domains so that to ensure smooth transition during this phase out period. Reconfiguring internal URL with publically trusted domain can also help reduce the number of SAN used in your SSL certificate.

This article is specifically focused on the areas where you need to keep an eye on reconfiguring the internal service URLs of Exchange 2010, this can be also used to reconfigure the version Exchange Server 2007 and 2013.

The following services are to be reconfigured to bring them in line with the new SSL standards,

  1. Autodiscover
  2. EWS (Exchange Web Services)
  3. OAB (Offline AddressBook)
  4. OWA and ECP (Exchange Control Panel and Outlook Web Access)
  5. Outlook anywhere
  6. Exchange Active Sync

Before you proceed, please ensure that you have done all pre-requisites for split DNS configuration. Because once you reconfigure the URLs, the traffic will be diverted to publically trusted domain. Not using a split DNS will cause the client to reach external lookup find the services.

Find the commands to reconfigure in order with the above services,

Note: My external domain is, for this exercise. Please replace it with your externally trusted domain. I assume that you already have the external URLs set with externally trusted domain.

Set-ClientAccessServer -Identity EXH1 -AutoDiscoverServiceInternalUri “

Set-WebServicesVirtualDirectory -Identity "EXH1\EWS (Default Web Site)" -InternalUrl “

Set-OabVirtualDirectory -Identity "EXH1\OAB (Default Web Site)" -InternalUrl ""

Set-OwaVirtualDirectory – identity “EXH1\owa (Default Web Site)” –InternalUrl “”

Set-EcpVirtualDirectory -identity “EXH1\ecp (Default Web Site)” –InternalUrl “ /ecp”

Set-ActiveSyncVirtualDirectory -identity “EXH1\Microsoft-Server-ActiveSync (Default Web Site)” –InternalUrl “ /Microsoft-Server-ActiveSync

Additional Informations:

  • Usually an IIS reset would apply these changes to the infrastructure, however I had to restart few servers (not all) to replicate the changes to clients.
  • You may use fiddler to test the client traffic to ensure there are not host name specific URLs are being requested.

Ref URLs,


Published in Solutions

Couple of times in the past, I observed this behavior that the database copy status turns to DisconnectedAndResynchronizing from DisconnectedAndHealthy after removing the activation restriction.


This situation arise because, the copy try to replay the recent logs from other nodes. If your database copy could not find any copy to copy the pending logs, the status would stay the same for longer period.


If you wish to have 2 DAG cluster with one of the cluster node as DR instance, then it is not a good idea to keep the ActivationSuspended parameter to true. Following are the approach you should consider to ensure a seamless recovery in case of a failover.

Option 1:

      1. Disable the ActivationSuspended value in the second node

      2. The database would failover immediately in the event of a node failure.

Option 2:

      1. Enable the ActivationSuspended value in the DR node

      2. In the event of active node failure, follow the DR procedure to evict the failed node prior to release the Activation suspension

It is recommended that, activation suspension can be released either when the nodes are available or after evicting failed nodes from the DAG cluster.


Published in Solutions

This video will help you to deal with applying the service pack on Exchange Server 2010 DAG Cluster. Microsoft has made the upgrade process fairly simple by the introduction couple of scripts. I will exhibit the behavior of these scripts and its usage in the Cluster infrastructure during the installation of Service Pack 3 on Exchange DAG Cluster with 3 nodes.

 Hope this will give an overall idea and a proper approach in your upgrade plans.



Published in Articles

You may have observed an unexpected growth in the database size and transaction log after a cross forest migration. It happened to me when I was doing a cross forest migration project from Exchange 2007 Server to Exchange 2010 server, so I thought of sharing it so that it may help you to plan the migration in a better manner.

The database size and transaction logs growth was unacceptably high due to few users’ outlook client. I observed ~30GB logs generated because of 2 users, and the database is also grown about 25 GB in a time span of 8 hours without any reason.


When I identified the users and clients (used Exchange User Monitor), it is observed that all the client versions are outlook 2010 original version (without any service pack), have mentioned it below.

Microsoft Outlook 2010 OUTLOOK.exe   14.0.4760.1000; I also observed that most of them were in Online mode with exchange.


To quickly work around this issue, all you need to create a new outlook profile for the user.

To plan the migration better, you must install the latest service pack for outlook (at least SP1) as I have not seen this issue with the SP1 version. I also have observed many migration issues with cache mode profile are also fixed with SP1.

How do you Identify the users:

Simply use the Exchange User Monitor. Download it here, and configure it by following Microsoft Exchange Server User Monitor


Published in Solutions

You may see the databases dismounted after you restarted the member server of a DAG (mostly when you only have 2 copies of databases). And if you try to mount the database, it will through the below error.

Microsoft Exchange Error
Failed to mount database 'Mailbox Database 0834974974'.
Mailbox Database 0834974974
Database 'Mailbox Database 0834974974' can't be mounted on server 'EXH1.exchangedictionary.local' due to a previous error: Failed to determine the mount status of the active database copy. Verify that the underlying cause of the error has been corrected before attempting to mount the database. The error can be ignored and the mount allowed if Mount-Database is reissued with the -Force switch.


As mentioned in the error, it is better try to fix the underlying cause, before you forcefully mount the database.
      • Ensure that the cluster service is up and running
      • Ensure that the DAG members are able to communicate each other, using the replication network (incase if you have replication and MAPI network).
      • Ensure the File Witness is reachable to the server
Mostly, any failure on above checks can lead to this issue, fix the cause and try to mount the database.

Share your feedback.


Published in Solutions

MS has recently released the Service Pack 2 for the Exchange Management Pack, and the same has been now temporarily removed from the Download Center due to the issue of mailbox quarantining when the free space availability on the Transaction Log Drive is low.

You may see the following entries on your event log, if you are affected with this issue.

Log Name: Application
Source: MSExchangeIS
Event ID: 10018
Task Category: General
Level: Error
The mailbox for user <guid>: /o=Contoso /ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=UserMailbox has been quarantined. Access to this mailbox will be restricted to administrative logons for the next 6 hours.


Log Name: Microsoft-Exchange-Troubleshooters/Operational
Source: Database Space
Event ID: 5410
Level: Warning
Keywords: Classic
The database space troubleshooter quarantined mailbox <guid> in database <DBName>.

To know more about this issue, read the below blog from Exchange Team.

Mailboxes on a database are Quarantined in an environment with System Center Operations Manager


Published in Solutions
Page 1 of 3
theme by reviewshub