PowerShell

Latest Articles

Using Certificate-based Authentication with the Microsoft Graph PowerShell SDK

Although it's easy to write scripts using cmdlets in the Microsoft Graph PowerShell, SDK you probably don't want to execute the scripts interactively. In this article, we explain how to use certificate-based (app-only) authentication to run scripts. This is very much an explanation about how to accomplish the task in a testing environment. If you want to run scripts in production, some extra work is needed.

November 9, 2021

Use Desired State Configuration to Snapshot the Configuration of Your Microsoft 365 Tenant

Microsoft 365 Desired State Configuration (DSC), is a way to capture details of a tenant's configuration using PowerShell in such a way that any changes made to the configuration can be easily detected. DSC allows administrators to understand when configurations change so that they can take action when necessary. In this article, Sean McAvinue explains how to use DSC to capture and report details of your Microsoft 365 tenant.

November 8, 2021

Send Exchange Online Email Using the Microsoft Graph SDK for PowerShell

Many people use the PowerShell Send-MailMessage cmdlet to send email from Exchange Online. In this article, we explain how to use cmdlets from the Microsoft Graph SDK for PowerShell to do the same job. The reason why this is important is that Microsoft will eventually deprecate the Send-MailMessage cmdlet as part of its campaign to eliminate basic authentication from Exchange Online. A replacement will be needed for all those PowerShell scripts which uses Send-MailMessage. This is one solution.

October 18, 2021

Connecting to the Microsoft Graph Using the PowerShell SDK

The Microsoft Graph SDK for PowerShell exists to help developers use Graph API calls from PowerShell. It works, but like anything in life, there's a right way to connect and use the SDK and a wrong way. In this article we explore topics like how to connect to the right tenant, how permissions are managed (or not), and why running Graph SDK cmdlets interactively isn't something you should do in production. Good as the SDK is, Microsoft has some big issues to solve to address some obvious security issues.

September 23, 2021

Microsoft Forces Move from Azure AD Cmdlets for License Management

On June 30, 2022, Azure AD and Microsoft Online Services cmdlets will stop working for license management. The result is that you need to upgrade PowerShell scripts which use these cmdlets. The choice is to use Graph API calls or cmdlets from the Microsoft Graph PowerShell SDK. In this article, we explore the steps necessary to upgrade a script to remove service plans from an Office 365 license (SKU).

September 9, 2021

How to Convert Azure B2B Guest Users to Members While Maintaining User Collaboration

Azure B2B guest accounts are often created during a Merger & Acquisition, so teams from both organizations can easily collaborate during the business and technology integration. However, these external users with B2B Guest accounts in their directory will eventually need to be migrated, which is problematic since B2B Guest accounts aren’t recognized as being licensed. The guest account can be removed and a new one created, but previous permissions would be lost. So how do we preserve permissions, keep collaborating without managing two sets of credentials while preparing the user account for data migrations? This article walks you through a solution that can be used in certain situations to help you easily manage the account to meet your needs.

September 8, 2021

Manage Exchange Online at Scale

Microsoft Certified Master (MCM) and Microsoft Certified Solutions Master (MCSM) Ingo Gegenwarth provides a glimpse into his speaking session at TEC and how to manage ExO at scale with PowerShell.

August 23, 2021

Exchange Online to Enable Plus Addressing Everywhere in January 2022

Microsoft has announced their intention to enable plus addressing across Exchange Online in January 2022. Plus addressing is a good capability, but it might cause some problems for tenants with mail-enabled recipients that have plus addresses in their set of proxy email addresses. Fortunately, we've written some PowerShell code to report those pesky addresses and to remove them if you want to do a big clean up before Microsoft makes the big switch in five months' time.

August 16, 2021

Attend TEC 2021 and Learn from the Very Best

TEC 2021, The Experts Conference, takes place as a virtual event on September 1-2. In this article, Tony selects his favorite sessions from the event agenda. This isn't to say that the other sessions are no good. Everyone's got their own favorite topics and there are many other TEC 2021 sessions covering other topics which will make others very happy.

August 4, 2021

How to Report Teams Channel Storage with Microsoft Graph API and PowerShell

Within large organizations utilizing Teams, generating reports on channel storage and then migrating this data is extremely difficult. To help map out how Teams uses SharePoint, this article introduces a simple Graph API/PowerShell script to report Teams channels and their SharePoint locations and walks you through the steps so you can run the report yourself.

July 15, 2021