Just can't get enough of IT

This blog is about mostly anything in IT. But the primary focuses are Microsoft Technologies like Exchange, Office 365, Azure and Cloud Security.


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 »
On September 22, 2015
0 Comment

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 »
On September 18, 2015
1 Comment


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 »
On September 17, 2015
0 Comment

Join ENow on Sept. 24 during MSExchange Con 2015 for our segment “Can You Trust Office 365?” hosted by ENow’s Exchange Server MVP Michael Van Horenbeeck.

In this webinar, we’ll recap the Office 365 outage, offer troubleshooting and monitoring strategies, and serve up hybrid best practices to provide visibility in a cloudy world.

Ultimately, we’ll answer the question – Can you trust Office 365?


  • September 24, 2015

Register here


Read More »


When you install the Exchange Server Security Update KB 3087126 on a server running the Exchange Server 2013 management tools only, you might receive an error message when starting the Exchange Management Shell.

The error might look like this:

PowerShell Error KB3087126

The error message indicates that WinRM is having issues.This is not the case.

The problem occues due to registry changes performed by the patch setup and due to the way how ConnectFunctions.ps1 (used by RemoteExchange.ps1) determines the Exchange Server to connect to.

The script tries to connect to the local FQDN, if any Exchange role is installed on the local server. This is determined by querying the registry using the following command:

if (@(get-item HKLM:\SOFTWARE\Microsoft\ExchangeServer\v15\*role -erroraction:silentlycontinue).length -gt 0)

The queried registry does not exist prior to installation of KB 3087126.

Regustry Keyy added by KB3087126 on a Management Tools only server


When having installed the Exchange Server 2013 management tools only, which might be the case on a monitoring or scheduled task server, do the following:

  • Delete the registry key ClientAccessRole
  • Open a new Exchange Power Shell session

Enjoy the Exchange Management Shell.



Mailscape 365 - Hybrid Exchange & Office 365 Monitoring and Reporting
Many organizations are choosing to use a mix of on-premise Microsoft Exchange and hosted Office 365 to meet their staff needs. These deployments, however, are challenging to support, with several 'moving parts' that need to be monitored in order to ensure reliable messaging and calendaring services - Test Drive Mailscape for Exchange Online


Read More »