Many PowerShell scripts written to automate operations in Microsoft 365 tenants fetch Azure AD users or mailboxes to process. In this article, we explain how to fetch user objects effectively by using filters to make sure that scripts process the right set of accounts or mailboxes.
PowerShell uses a concept called pipelining to combine two or more cmdlets to perform a cohesive task. The PowerShell pipeline combines singularly useful cmdlets together to process data. Used intelligently, the pipeline is a great way to process data through a series of steps to automate common administrative operations. Mastering the pipeline, or at least becoming comfortable with pipelining cmdlets, is an essential skill for anyone using PowerShell to manage Microsoft 365 tenants.
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.
Many Exchange Online scripts use the old Get-Mailbox cmdlet to fetch mailbox data. It's time to change these calls out and replace them with Get-ExoMailbox. The new cmdlet is faster than the old and more resilient in its ability to handle server glitches. There's no reason to continue using the old Remote PowerShell cmdlets unless you like slowness and errors.