How to configure sender authentication for Exchange Online in 2021

Learn how to configure your email domains for Exchange Online

Why is this website so fast?

I have recently updated our website and have learned a few things while doing so.

So long, 2020

Goodbye 2020! What a year it has been.

Convert PowerShell Help to a Website


How to use the platyPS PowerShell module to convert comment-based help to markdown and easily host it on GitHub pages.

Using PowerShell and Azure Cognitive Services to convert text to speech

In one of our recent Microsoft Teams projects I needed some voice prompts for a customer service call queue.

Configuring policy-based QoS for Teams with Intune


Traditional Active Directory with group policy has no place in the big-picture of the modern workplace, so we need a novel solution to apply policy-based QoS to our Teams clients.

Send Check Point Logs to Azure Sentinel (beta)

Azure Sentinel is Microsoft’s new, cloud-native security information and event management (SIEM) tool. In my simplistic point-of-view it is a security-focused, machine-learning-driven add-on for Log Analytics (OMS). Today we will be looking into ingesting Check Point Firewall logs into Log Analytics.

Create a SAS token for AzCopy

I’ve spent way too much time trying to figure this out, so here goes a quick note that hopefully saves someone a minute.

ntSystemsPSDrive: a SHiPS drive for the blog

Some time ago I wrote a post about Consuming ntSystems with PowerShell. It boils down to this: we have a json-based API that is available via and returns json elements for posts and pages on the blog. For more information check out the linked post. Then I wanted play around with the SHiPS module for some time and finally got around to doing it this past weekend. Now I’m happy to be sharing another method do consume ntSystems with PowerShell: It can be mounted as PSDrive.

Powershell Script to enable specific Office 365 Service


Currently I’m in an Exchange Migration project to migrate all mailboxes from Exchange onPremise to Exchange Online. Yeah.. of course.. killing Exchange onPrem… again :)

Windows Server 2019 and RADIUS


First of all, happy new year :) Today we will have a quick look at Windows Server 2019, more specifically the Network Policy Server role.

Sending events to Splunk's HTTP Event Collector with PowerShell

Using Invoke-RestMethod to send events to a Splunk instance.

lost & found: FFmpeg and Skype4B, Security Baseline for RS5

A quick edition of lost & found on how to use FFmpeg on WSL to create audio files that can be used for Skype for Business announcements. And an observation about the recently published security baseline for Windows 10 1809 and Server 2019.

Remote EMS over IPMI serial-over-lan

Using standards-based IPMI to get some sort of out-of-band management for AudioCodes’ embedded server modules.

Network assessment with policy-based QoS and iperf3

In Skype for Business and, more recently, Teams deployments, a solid network and a good knowledge of it are fundamentally important.

Exchange Hybrid Observations


Like I did here with Skype for Business, I’m collecting some observations and useful snippets about Exchange in hybrid environments.

lost & found: Updates and no more tracking on

I’ve recently updated the sources of the blog and moved to the gem-based version of the minima theme. This should make the site easier to maintain in the future.

Azure Functions: Building a Telegram Bot with PowerShell 2

Welcome back to the second part of our little fun experiment with Telegram and Azure Functions. In the first part we created the function app and the bot, now let’s hook them up.

Azure Functions: Building a Telegram Bot with PowerShell 1

Today I’ve got a fun one, we’re going to use Azure Functions to build a Telegram Bot with PowerShell. Sounds interesting? Well here we go. Before diving into the technical details, lets have a quick overview of what we’re trying to do.

lost & found: ntSystems Onion Service, Cloudflare DNS

It’s Friday and here’s another edition of lost & found.

Skype for Business Hybrid Observations


A collection of information about Skype for Business in hybrid environments.

Azure AD Connect: Failed to load configuration information

When upgrading Azure AD Connect (ADSync), the wizard fails with the error: “Failed to load configuration information from primary ADFS server”.

Tunneling SSH through Tor

I’ve been using Onion Services aka. Hidden Services to connect to remote machines for some time now. Tor clients can connect to such services through the Tor network, there is no need to know the IP address of the destination machine, likewise there is no need to configure inbound port mappings or firewall rules.

Testing CoinHive


I’ve recently stumbled upon coinhive and with all the recent fuzz about crypto currencies, I decided to have a look at it. So what’s that all about?

The Invisible Internet Project and WSL


The Windows Subsystem for Linux can be used to run quite a few interesting things on Windows, one of them is the Invisible Internet Project or i2p.

PowerShell and Variable References


I’ve come across an interesting behavior (or feature) of PowerShell the other day. As I don’t really understand what’s going on, I decided to write it up, maybe someone out there can help explaining this.

Jekyll on WSL


Today we are looking at running Jekyll on WSL or Bash on Ubuntu on Windows.

Keeping track of PowerShellCore releases on GitHub

I’ve been using PowerShell Core on my MacBook for a while now. As the code is still in its early stages, there’s no way of managing/updating the software one is running, at least none that I would be aware of. I did miss some updates and, as a result, had problems with Visual Studio Code. So I’ve put together a quick function that checks the latest release on GitHub and can conveniently be put into my $PROFILE.

Jekyll Fun: Consuming ntSystems with PowerShell

As you might have read before, our little blog is powered by Jekyll. Well I stumbled over the jsonify filter the other day, and so I built a little “kind-of” API :) Sound interesting? Read on.

My takeaways from MS Tech Summit

Daniel and I have attended the Microsoft Tech Summit in Milan earlier this week. Overall it was a pretty good event, especially taking into account that it was free. The keynote was quite interesting, so much so, that I thought I’d share my takeaways.

Azure Site Recovery Deployment Planner

Today I was super excited about the first tests with the Azure Site Recovery Deployment Planner. Sometimes calculating the Bandwidth, Storage, local infrastructure needed for Site Recovery can be very tricky. Therefore, I’m happy that Microsoft released a helpful tool to get the right information needed.

Get Going with Go!

Everyone is talking about Go these days so I decided to have a look at it and see what it could do for me.

Get started with Azure ARM Templates

To start with the deployment using Azure ARM Templates is quite easy. A first step can be to deploy an Azure SQL Database. But let’s start with a bit of background information:

Disable Azure Backup Protection for a VM with Azure PowerShell

My Azure credits burn faster than expected :) So I decided to remove some VM’s and Backup that I used for a customer’s demonstration. Since I don’t use the Azure Portal for configuration anymore, I fired up Powershell and did the Job. With the following commands, I show you how to stop the Backup for a Virtual Machine and delete the associated Recovery Points.

Migrating from BlogEngine to GitHub Pages: Fixing the links

In this episode of our little series on migration we are having a look at the URL structure of Jekyll and some of the less visible stuff that was associated with the old ntSystems.

Introducing: TAK

Over the years I did create, find, copy, paste, quite a few lines of PowerShell code. Some of which I’m turning into re-usable functions and collecting in a module, creatively called “Tom’s Admin Kit” or TAK. I hope you find it useful. I try to credit the sources for the stuff that I just copied off of the interwebs, even though I don’t actually remember all of them.

AzureStack POC TP2 on VMware

I’ve been trying to make the Azure Stack Proof-of-Concept (Preview 2) run on VMware and here is what I found.

Migrating from BlogEngine to GitHub Pages: BlogML to Markdown

As promised here, I’m sharing the first part of our migration process from BlogEngine to GitHub Pages. A major part is, obviously, the migration of the content of the blog itself.

Welcome to our new blog!

This site has been running on Azure Web Sites for some time. As we are doing this for fun and are not making any money with the site (see any ad?) we had to use the “Shared” pricing tier which was economically acceptable but from a performance and feature point-of-view, well, not great. We used Cloudflare to get some caching and enable stuff like https and IPv6 for the site and it was OK :) Then came…

PowerShell on macOS

Just sharing some quick notes on how to run PowerShell (and dotnet core) on macOS Sierra.

Deploying Labs using Azure Resource Manager


I did a demo of Cisco CSR 1000v on Azure the other day and the easy deployment of a small test-network was part of that demo.

Veeam direct restore to Azure

Lync SDN API and Cisco WLC


Some days ago I had the chance to test Cisco’s Wireless LAN Controllers with the Lync Software Defined Networking (SDN) API.

Azure Backup - Part Three

lost & found: Nano Server, GitHub, PSGallery, Pester

Azure Storage Explorer, the easy way to manage your storage

Azure Backup - Part Two

Azure Backup - Part One

Hyper-Convergence with Nano Server: Part 3

Hyper-Convergence with Nano Server: Part 2

Azure File Services

Re-register Azure MFA Server

Hyper-Convergence with Nano Server: Part 1

In this post I’m walking through the steps creating the images for my Nano Servers and then deploying them. Like in this post, I’ll use WDS for the deployment, so some steps might already be familiar.

Install Office Web Apps Server 2013 on Server 2012 R2

Hyper-Convergence with Nano Server: Intro

lost & found: Onyx

Happy holidays and some numbers

lost & found: OpenLiveWriter, RackHD, EHC, diskspd

Domain-joining the vCenter Server Appliance 6

Azure Backup: Restore

Installing Nano Server using WDS and PxE

lost & found: TP4, TH2, Win32-OpenSSH, VS Code

Getting started with vCenter Server Appliance 6

Netscaler as ADFS Proxy

Azure Backup

Getting started with OSX

Moving on!

How to prepare for Exchange 2013 PF migration and what the Microsoft Guide doesn’t tell you

netsh trace and the Message Analyzer

Considerations when planning for DirectAccess

WMF 5 Preview: Update is not applicable to your computer

Windows 10 VHD Boot

lost & found: Windows Tech Preview, Delve, Sway and

SCVMM–HyperV Script to reboots VM’s with powershell

Lync 2013 backend on SQL Cluster with mixed authentication mode

Moving to Azure…

NoOp and NAT Traversal

IPv6 im Unternehmen

Work Folders Demo mit Microsoft Azure

ActiveDirectory DisplayName mit Umlauten und AudioCodes ISDN


Vor einigen Tagen bin ich in einem Lync Projekt auf das Problem gestoßen, dass bestimmte Benutzer keine Anrufe in das PSTN (ISDN E1) tätigen konnten. Der Kunde setzt ein AudioCodes Gateway ein, die Syslogs des Gatways sind zur Fehlersuche sehr gut geeignet. Das Gateway bekommt die SIP Signalisierung von Lync sowie die Q.931 Signalisierung aus dem ISDN mit.

App-V and the start menu folder redirection issue

Lync: SIP inter-domain federation with Cisco Unified Presence - 2

Lync: SIP inter-domain federation with Cisco Unified Presence - 1

Lync Conf 2014 Keynote

Exchange 2010 Update-HybridConfiguration

Lync 2013 Hosting Pack v2 and Skype federation

Lync Client certificate warning Exchange Autodiscover

Migration: ntSystems Mail von Aruba nach Office 365

Connect to Office 365 with Powershell

Import Certificate to RD

PAL: Performance Analyse

Windows Azure – Point to Site VPN

CNG Certificates and Lync/ TMG

How to build an UAG 2010 Array for Exchange publishing–Part 2

Connect Sharepoint 2013 with Exchange 2013 to sync tasks

ActiveSync devices ask for authentication

Lync 2013 Survivable Branch Server – Installation

Hyper-V General access denied error

Lync 2013 Survivable Branch Server – Planung

Lync Private Line

date_modified: Invoke-SEFAUtil

Exchange Unified Messaging Sprachauswahl

Lync Server Backup

Outlook Autodiscover and what to do when migrating from Exchange 2010 to 2013

Troubleshooting Sharepoint Error Messages

Lync: Music on Hold / Wartemusik

SIP: Anruf halten

Invoke-SEFAUtil – a PowerShell wrapper function


I had to use SEFAUtil to get some tasks done the other day. As I prefer using PowerShell over just another command line tool, I decided to come up with a quick wrapper function that is intended to make my life a little easier.

Your Windows phone does not support this server version…

Migrating from Exchange 2010 to 2013 – part 5

Web Application Proxy in Windows 2012 R2 preview

Lync and Exchange 2013 OWA integration

Migrating from Exchange 2010 to 2013 – part 4

Exchange 2013, Open Public Folder on Exchange 2010

Configure Exchange 2013 CAS Array with WNLB and enable Kerberos support for OA

Migrating from Exchange 2010 to 2013 – part 3

Exchange 2013 clean install but many MSExchange Common 106 errors

How to build an UAG 2010 Array for Exchange publishing–Part 1

Migrating from Exchange 2010 to 2013 – part 2

Migrating from Exchange 2010 to 2013 – part 1

What’s happening these days…

Joining WiFi before login on Mac OS X 10.8

Patching Office Web Apps Server

Prepare Windows Server 2012 for Lync 2013

Installing Lync 2013 Updates

ActiveSync, ForeFront TMG and AccountLockoutThreshold

Lync 2013 (Client) and LyncDiscoverInternal

Lync 2013 – Installation and Certificates

Lync 2013 – Prepare AD and build Topology

Lync 2013 – Voicemail Escape

Windows Server 2012 – Virtualized Domain Controller

PowerShell v3 Invoke-WebRequest

Microsoft NDES and Cisco IOS – part 2

Microsoft NDES and Cisco IOS – part 1

With digital certificates being the de-facto standard for authentication, a handy enrollment model is key (pun intended). Microsoft included it’s NDES or Network Device Enrollment Service as a Role in Windows 2008, it has been available as add-on for Windows 2003, too.

Get access to a Windows 2012 Server without a password

Sharepoint 2013 change default settings of “Upload Image” Pop-Up

Exchang 2013, Offline OWA

Windows Server 2012 – DirectAccess

Windows 8 – Windows To Go

SharePoint 2013 Search Center – Windows 8

Office 2013 Web Apps

Exchange 2010 and MaxInboundConnectionPerSource

Scheduled Jobs in PowerShell v3

Exchange 2010, Outlook doesn’t show attachments

GAL Photos reloaded–batch import

Server 2008 R2, Disk Management und DiskPart lässt sich nicht starten

My PowerShell Profile

VB.Net PowerShell Script starten

NPS Migration von Server 2003 nach 2008 R2

Automatic IOS configuration backup

Steve Ballmer on Exciting Times–Office 2013

Why am I learning PowerShell? And why do I think you should give it a try, too?

ActiveSync Organization Settings–Mobile Device Management

Passing an array to a {scriptblock}

We are still out there, somewhere…

Wireless Sniffing mit NetMon 3.4

Windows Server 8–Virtualized Domain Controller

Exchange 2010 Send on behalf for distribution Groups

Windows 8 to Go

Forefront TMG 2010 SP2–NLB Kerberos

Windows Server 8 CP–DHCP Server Failover

Wireshark und Windows 8

Windows Server 8 CP–AD Administrative Center

Windows Server 8 CP–Remote Group Policy refresh

Windows Server 8 CP –ServerManager

PowerShell loves WMI – OS Info

PowerShell Implicit Remoting

Exchange 2010 SP2 Installation

Windows PowerShell v3.0 (CTP 2)

Exchange 2010–Restore Mailbox Content

Exchange 2010 Unified Messaging–Cisco Call Manager 8.6

Citrix, Sprache des ICA Client ändern

Windows 8 - Installation in VHD

Windows 8–Developer Preview

Outlook 2003 / Exchange 2010 Probleme beim Öffnen freigegebener Kalender

PowerShell–Rekursiv nach Änderungsdatum sortieren

DigiNotar–nur ein Zufall!?

ESXi–Persistent Scratch Location

Citrix IMA Dienst startet nicht mehr

Citrix XenApp6 Fehler beim starten des Webservice

EX2k10 PST in Archive importieren

Lync Integration in Outlook Web App 2010

Cisco AAA


One Note–Kleiner Tipp

Subdomain Certificate Enrollment

Installing vSphere PowerCLI

Upgrade Windows Server 2008R2 Sp1 - BlackBerry Monitoring Service startet nicht

Forefront TMG Console – Script Error


SoftAP - Windows 7 Wireless Access Point

AppV Streaming Server

Create VMWare ESXi Flash Drive

SharePoint–Dienstkonto wechseln, Probleme mit Kerberos

Outlook–gesendete Objekte–Shared Mailbox

TMG–Fehler beim Ausführen von Abfragen im Log

Zertifizierungsstelle verschieben–neuer Servername

Signing PowerShell Scripts

PowerShell Scripts

TMG 2010 unable to authenticate users after reboot

Exchange 2010, change Display Name for outgoing Mails


Mail Sensitivity Header Exchange 2010 SP1

Sharepoint 2010, external List, BCS, SQL

Sharepoint Foundation 2010, insufficient SQL permissions

Migration ISA Server 2k4, 2k6 zu TMG, WPAD

Exchange 2010 Pfad einer Mailboxdatenbank ändern

Exchange 2010 SP1 Online Archive in eigene Datenbank verschieben

Exchange 2010 Zertifikat anfordern

Exchange 2010 SAN Zertifikat–Server 2008 PKI

WebDav, IIS7 publishing over ISA Server Part 2

WebDav, IIS7 publishing over ISA Server Part 1

Exchange 2010–Role Based Access Control

Shared Mailboxes und Auto Mapping E14 Sp1

E14 SP1 Import/Export Update

Sharepoint 2010, Fehler in der SQL Datenbank beheben

AppV 4.6–SCCM 2007R2 Streaming Applications

Sharepoint Web Apps lassen sich nicht installieren

AppV 4.6–SCCM 2007R2–Streaming Issue

Sharepoint Foundation Serach, 14

Exchange 2010–Database Restore

Import/Export Mailbox

AppV–Adobe Reader Sequencing Receipe


Keine Mailzustellung auf Öffentliche Ordner nach Exchange 2010 Upgrade (von Exchange 2k3)

AppV 4.6–Fehler beim Starten

Exchange 2010, w3wp.exe belegt sehr viel RAM

Exchange 2010–GAL Fotos

Sharepoint Foundation 2010, Fehler Web.config, requestFiltering

Upgrade Exchange 2k3 - 2010

Forefront TMG 2010–RSA Authentication Manager 7.1

Apple IPad

Exchange 2010 Entourage Web Services Edition- EWS Attachement Size

Exchange 2010 – Backup

Migration Sharepoint Services v3 zu Sharepoint Foundation 2010

Sharepoint Foundation 2010 Dateien lassen sich nicht öffnen

DistributedCOM Fehler 10016, fehlende Berechtigungen

Windows Virtual PC / interner DHCP Server

ntSystems - Update

Exchange 2010 – SafeList Aggregation

TPM / BitLocker Schlüssel in AD DS speichern

WSUS auf neuen Server verschieben

Buchen einer Ressource in Outlook 2010 mit Exchange 2k3

NLB – Unicast vs. Multicast, Konfiguration, Port Rules

Installation der Sharepoint Services 3.0 auf Server 2008

Office 2010 fertig!!

Programme vom Server Core / Hyper-V Server deinstallieren

Exchange 2010 - Active Sync funktioniert nicht

WDS Remoteinstallationsordner verschieben

WSUS content / database auf anderes Volume verschieben

Forefront 2010 – Dienste starten nicht automatisch


Terminal-Lizenzserver, 4105

BOOTMGR is missing

Exchange 2010 – This Attachment was removed

NVSPBIND für Hyper-V

WSUS auf anderen Server verschieben

WPAD und Server 2008

Hyper-V Server / Core Bindungen der Netzwerkadapter aufheben

BlueScreen “Stop 0x0000007E” beim aktivieren der Virtualisierungs-Technologie

Server 2008 Core / Hyper-V Netzwerkschnittstelle umbenennen


Zertifizierungsstelle verschieben (Backup/Restore)

Domain Controller umbenennen

Forefront Threat Management Gateway 2010

Exchange 2010 – Anonymous Relay

Ersten WS08R2 DC im vorhandenen Forest installieren

Exchange 2010 – Edge Subscription

Exchange 2010 – Get-OwaVirtualDirectory Access Denied

DHCP Fehler 1003

Windows 7 USB/DVD Download Tool

Microsoft TechDay Dezember 2009

Microsoft Hyper-V Server 2008 V1 vs. V2

Netlogon Fehler 5719 auf Server (nicht DC)

Windows 7 – Update von RC (7100) auf RTM (7600)

Windows 7 Bootloader, OS hinzufügen

Servergespeicherte TS-Profile, Fehler 1543

Netzwerkprobleme lassen Dynamics abstürzen

Upgrade auf Windows 7

Sharepoint LogFiles verkleinern

Exchange 2010 – Dynamic Signature

Fehler bei HP Netzwerkkarten Update

“DATA ENCRYPTION” Fehler bei RDP Verbindung

Windows Server / Hyper-V Server 2008; storflt kann nicht geladen werden


Language Pack für Windows 7

Hyper-V Server 2008 R2 Cluster


Windows 7, Server 2008 R2 und Hyper-V Server 2008 R2 in Deutsch auf TechNet/MSDN

Windows Virtual PC – UnDo und Differencing Disks

Windows Virtual PC

BitLocker To Go

Windows 7 - Sicherheitsproblem in UAC

Windows 7 Neuerungen auf den ersten Blick

RemoteApp mit Zertifikat

Doch kein Windows 7 E

Microsoft Roadshow zu neue Produkte

Windows Home Server PP3 (Beta) – Windows 7

Server Logs in SQL Datenbank importieren

Mehrere externe IP’s am ISA Server

Ein paar Infos zu “DirectAccess”

Windows 7 – Nativer VHD Support

Windows 7 – Installation mit USB Stick

MSAT deckt Schwachstellen in der IT Umgebung auf

Windows 7 – RTM Verfügbarkeit

Zertifikat für Makros der Domäne bereitstellen

Delta CRL “Unable to Download” IIS 7

Drucken mit Internet Explorer 8 nicht mehr möglich