Add, remove, or replace values using PowerShell

I had another encounter this week where a customer wanted to remove the value from something in Exchange. Setting the value to $null didn't work, and I showed him how to remove it another way. This blog post will show a few ways to add, remove, or replace a value using Active Directory and Exchange Online as examples.

Copying Exchange Full Access and Send As permissions to other users

I was working on a user provisioning script for a customer, and he asked if I could copy all Shared Mailbox permissions of a template user to the new user. (It was something that was quickly forgotten during the user creation process) Sure, because PowerShell 🙂 In this blog post, I will show you how to retrieve Full Access permissions and copy them (Including Send As) to another user.

Using Get-ManagementRole to get the permissions required for Exchange-specific cmdlets

I ran into an issue where one of my Exchange scripts didn't work, "a parameter could not be found that matches the parameter..." Strange error because the parameter is there... Or is it? In this blog post, I will show you how Get-ManagementRole works in Exchange and how it can help you with issues like this.

Import Exchange Relay Connector IP-Addresses to IIS SMTP instance

For one of our customers, who's moving away from their On-Premise Exchange 2016 server, I needed to move all the relay connectors (Used by legacy applications, appliances, and hardware) to an IIS SMTP instance. It's pretty straightforward, but... Adding the long list of addresses myself... No 🙂 In this blog post, I will show you how to easily migrate the IP addresses from a Receive Connector into an IIS SMTP instance.

Using Send-MgUserMail as the Send-MailMessage replacement

I have often used the Send-MailMessage cmdlet to test Receive Connectors in Exchange or email reports in scheduled PowerShell scripts. When you try to use the Send-MailMessage cmdlet, it has been showing you this message for quite a while now: WARNING: The command 'Send-MailMessage' is obsolete. This cmdlet does not guarantee secure connections to SMTP servers. While no immediate replacement is available in PowerShell, we recommend you not use Send-MailMessage. See https://aka.ms/SendMailMessage for more information. In this blog post, I will show you the new way of sending emails using Send-MgUserMail.

Copy Exchange Receive Connector Settings using PowerShell

Currently working on rebuilding a failed Exchange 2016 DAG node, installing Exchange, and getting the databases in sync again... And then you remember that the Anonymous Relay settings are something that's configured on each node separately, and it contains a lot of IP addresses 🙁 This blog post shows you how to easily copy an existing Receive Connector to a new Exchange server!

How to create a report on PST files in your environment

Recently I've been working on an Exchange migration from an Exchange 2016 environment to Exchange Online. The company had a lot of PST archives on home directories which we could import as an Online Archive for the users. But there also were a lot of PST files on department File Shares that needed to be inventoried. This blog post describes how to create a report on those files.