MVP - Most Valuable Professional

Just can't get enough of IT

This blog is about mostly anything in IT. But the primary focuses are Microsoft technologies like Exchange Server, Microsoft 365, Microsoft Teams, and Cloud Security.

The script published by the Exchange Team (Analyzing Exchange Transaction Log Generation Statistics) requires an update when run on a system that does not use the en-US locale as Culture.

When the script analyses the saved log file information, a DateTime error is being thrown:

Cannot convert value "21/05/2010" to type "System.DateTime"

See the original blog post for examples:

The script utilizes the Get-UICulture cmdlet to fetch the culture settings required to have [DATETIME]::Parse() work as expected.

DateTime values are stored in the CSV file using the UICulture setting, but [DATETIME]::Parse() uses the local culture settings to parse values by default.

To check your settings in PowerShell use the following cmdlets:

  • Get-Culture
  • Get-UICulture



Read More »

Office 365 for Exchange Professionals CoverBook Review

During DEV/IT Connection the new release of Office 365 for Exchange Professionals has been published.

Personally I recommend this book to every Exchange professional who wants to implement Exchange Hybrid setups or needs to migrate to Office 365. If you want to be successful, read this book and use it as a reference.

The information provided reflects the experience of the authors who contribute to the Exchange community regularly. This has been written without any Office 365 marketing stuff in mind. (As one of the authrors is Tony Redmond).

The chapters provide an overview of the various technologies as well as detailed informations for the day to day work of an Exchange administrator. Notes from the field help to understand the complex (or not so complex at all) requirements of Exchange hybrid configurations.

Due to the nature of "The Service", an Exchange administrators needs to keep up with the changes deployed constantly. This book covers the most recent changes and evolvement to "The Service" like Groups or Delve.

I will kep it short:

Buy It. Read It. Enjoy It.

Not joking...

Buy the Book

Read More »


This script adds multiple public folder servers to all public folders below a TopPublicFolder.

The script has been developed as part of an on-premise legacy public folder migration from Exchange 2007 to Exchange Server 2010.

The script waits a given timespan in seconds to let public folder hierarchy replication and replica backfill requests kick in.

It is assumed that the script is being run in an Exchange 2007 or Exchange 2010 server.


# Add replicas for SERVER01,SERVER02 to all sub folders of \COMMUNICATIONS\PR

.\Add-PFReplica.ps1 -ServersToAdd SERVER01,SERVER02 -PublicFolderServer SERVER01 -TopPublicFolder "\COMMUNICATIONS\PR

Version History

  • 1.0, Initial community release
  • 1.1, Fixes to run properly with Exchange 2010



Read More »

Michael Hall of MCS has published on excellent Excel tool to simplify the migration of on-premise Exchange mailboxes to Office 365.

The script does support not special characters in display names as it is intended to work with ASCII files.

The textfile type used by Excel VBA code has been changed from 437 to 65001.

When you want to use the attached Excel file you are required to create an UTF-8 export when collecting mailbox data. The required PowerShell code is as follows:

$mbx=Get-Mailbox -resultsize unlimited; $mbx | foreach-object {$UPN = $_.UserPrincipalName; $EmailAddress = $_.PrimarySmtpAddress;$OU = $_.OrganizationalUnit; $Type = $_.RecipientTypeDetails; $_ | Get-MailboxStatistics | select @{Name="UPN";expression={$UPN}},@{Name="EmailAddress";expression={$EmailAddress}},@{Name="Type";expression={$Type}},@{Name="OU";expression={$OU}},DisplayName,@{Name="TotalItemSize(MB)";expression={$_.TotalItemSize.Value.ToMB()}},LastLogonTime}|Export-csv .\Mailboxes_Output.csv -notype	-Encoding UTF8

Then just follow the instructions provided in Michaels blog post.




Unsure, if you should migrate to Office 365? You want to know more about security of cloud applications and services? Your Exchange Server infrastructure requires an upgrade? Contact me via email:


Read More »


This script helps you to configure mailbox quotas for

  • ProhibitSendReceive
  • ProhibitSend
  • IssueWarning
  • ArchiveQuota
  • ArchiveWarningQuota

on a database level across all Exchange Server 2013/2016 databases in your environment or for a specific user.


Set all Exchange 2013/2016 databases to 1GB max mailbox size and use default percentage (90%/80%) for prohibit send and issue warning.

.\Set-MailboxQuota.ps1 -MaxMailboxSize 1GB -AllDatabases


Set max mailbox size to 10Gb for a dedicated user and use default percentage (90%/80%) for prohibit send and issue warning.

.\Set-MailboxQuota.ps1 -EmailAddress -MaxMailboxSize 10GB

Version History

  • 1.0, Initial community release
  • 1.1, Archive support added
  • 1.2, Refactored to functions
  • 1.3, PowerShell hygiene
  • 1.4, Parameters reordered, PowerShell hygiene


Last updated: 2017-04-20





Read More »