Tag: PowerShell

Latest Articles

Using the Microsoft SDK for PowerShell to Report Azure AD Account Sign-ins

The Microsoft Graph SDK for PowerShell can be used for many purposes, among which is access to Azure AD account sign-in data. In this article, we explain how to use the SDK cmdlets to retrieve sign-in data for both tenant and guest accounts and report what we find. You can use the report to identify potentially unused accounts which might not need some expensive licenses, or guest accounts that are no longer used.

October 26, 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

Microsoft to Retire Old Exchange Admin Center in Office 365 Next Year

Microsoft plans to retire the now-decrepit and very old EAC on September 1, 2022. The old console has hung on too long, perhaps because Microsoft hasn't progressed the development of its replacement as quickly as they could have since its 2019 debut. Although Microsoft claims that the new EAC reached feature parity with the old some time ago, any examination of the two consoles proves that this is not the case. With that in mind, it seems like Microsoft has some work to do to make everything ready for the big retirement date in 2022.

September 14, 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

Using Filters with the Get-ExoMailbox Cmdlet

It's a good idea to replace older calls to the Get-Mailbox cmdlet with Get-ExoMailbox. However, it's not just a matter of cut and paste updates. In some cases, the nature of the new REST-based cmdlets mean that some additional care is necessary to ensure that the updated code works as expected. As we examine in this article, filters are just one example where some attention to detail is needed to make sure Exchange Online delivers the right set of mailbox data.

June 21, 2021

Creating Personal Contacts in User Mailboxes with PowerShell and the Graph

An earlier article explained how to create organizational contacts in user mailboxes with Graph API calls. This article builds on that idea with three improvements. First, we select target mailboxes for update by looking for those added in the last month. Second, we allow any mail-enabled recipient to be added as an organizational contact. Third, we incorporate some code to check if a contact already exists in a mailbox. Like anything with PowerShell, this code can be improved..

June 15, 2021
Moving on from Send-MailMessage: Sending Email from PowerShell using the Graph API 36 Comments
PowerShell Microsoft Graph

Moving on from Send-MailMessage: Sending Email from PowerShell using the Graph API

Many PowerShell scripts use the Send-MailMessage cmdlet to send mail. That's fine, but if you want to remove basic authentication to improve tenant security, you need to stop using Send-MailMessage. One solution is to move to use the Graph API SendMail call. This works fine, but it creates some new security issues that need to be thought through. In this article, we explain how to use the Graph to send email and some of those security considerations to ponder.

June 8, 2021
Getting Exchange Online Distribution List Membership Counts with PowerShell 15 Comments
Exchange Online Powershell

Getting Exchange Online Distribution List Membership Counts with PowerShell

It's important to know if a tenant has any very large distribution lists as these might be the source of reply-all mail storms. An old article explains how to report the membership counts for distribution lists on an on-premises Exchange server. Life is different in the cloud, and we need to take a different approach. This article explains how to use different calls in a PowerShell script to create a nice report about distribution list memberships.

June 7, 2021