Completely remove whole meetings’ SERIES using PowerShell and EWS.


Some time ago I’ve published here a way to remove meetings from calendars using EWS:

I got a bit upset that I needed to run the script from time to time to remove old stalled  cancelled meetings that were there before applying “AutoAccept” calendar processing. We got tons of them believe me, and I wanted to get rid of them completely! But how to remove the whole series and not just meetings for like two years, I wanted not to worry about the meetings even after 5 years, I just didn’t know how to remove the whole series as when people were mentioning about removing the series in the Internet articles, they were usually mentioning how to remove meetings for a long period of time and were calling it by removing a “series”.

Continue reading “Completely remove whole meetings’ SERIES using PowerShell and EWS.”

How to remove litigation hold from mailbox in Exchange Online and clean Purges folder immediately.

When removing litigation hold from mailbox in Exchange Online you need to run these 2 commands in order to start mailbox clean immediately:

Set-Mailbox -Identity "identity" -LitigationHoldEnabled:$false
Set-Mailbox -Identity "identity" -RemoveDelayHoldApplied

Items cannot be deleted from mailbox’s “deleted items” even using MFCMAPI.


Just recently I’ve got this weird issue.

Mailbox got stuck. I was able to remove emails from inbox folder and subfolders, even from the Recovery Items folder BUT… not from the deleted items folder.

The behaviour was weird – I was removing some emails and they were reappear after some time, same with MFCMAPI – was clicking hard delete and these bastards didn’t even move.

I was even not able to move the mailbox as it was telling me that mailbox exceeded the quota – I knew it – well, let me remove these emails then!!!

The reason for that appeared very trivial, I’ve been mentioning about this mechanism here:

Mailbox had litigation hold enabled and the “Purges” folder on the mailbox got filled up to 100GB. I thouhgt that these emails will be moved to archive but somehow these were still in the mailbox space causign the issue.

Removing the litigation hold allowed to finally delete the emails from deleted items.

Just as a reminder to check what is the size of the “Purges” folder run:

Get-MailboxFolderStatistics -Identity “<mailbox_name>” -FolderScope RecoverableItems -IncludeAnalysis | ft

How to check last run of Mailboxes’ Managed Folder Assistants.


Let’s say you have published wrong retention policy and you would like to check which mailboxes got this policy applied. To check when the last run of Mailboxes’ Managed Folder Assistant took place you might use below simple script – it is a mess but I’m sure you guys will retrieve from it what you want ^^.

Continue reading “How to check last run of Mailboxes’ Managed Folder Assistants.”

Multiple node graphs on ZABBIX dashboards using Grafana.


Just recently ZABBIX 4.0 came out, so I thought we will finally get ability to display values from multiole hosts on one graph – unfortunately not. BUT! There s a way to have it directly in ZABBIX dashboards – using Grafana.

Continue reading “Multiple node graphs on ZABBIX dashboards using Grafana.”

O365 Exchange Hybrid Configuration and ShellId error.

If you get one of these errors:

Updating hybrid configuration failed with error ‘System.Management.Automation.Remoting.PSRemotingTransportException: Processing data from remote server failed with the following error message: [ClientAccessServer=xxxxxxxx,BackEndServer=xxxxxxx,RequestId=xxxxxx, TimeStamp=xxxxx] [FailureCategory=WSMan-InvalidShellID] The request for the Windows Remote Shell with ShellId xxxxxxxxxxxxxxxxxxx failed because the shell was not found on the server. Possible causes are: the specified ShellId is incorrect or the shell no longer exists on the server. Provide the correct ShellId or create a new shell and retry the operation. For more information, see the about_Remote_Troubleshooting Help topic.

when trying to run hybrid wizzard configuration:

You might want to try turning off MFA for admin accounts – you give second factor code/consent whilst logging to the configurator, but obviously it later tries to run some commands in the background and these also enforces MFA.