Discovering new PowerShell tricks is always a delight, especially if they help solve problems. In this post, I cover a situation where a trick from the dawn of PowerShell helped answer a query about the Microsoft 365 Groups and Teams activity report script. I also cover why the Export-CSV cmdlet isn’t so good when it comes to exporting non-ASCII data.
Every quarter, Microsoft reports its progress in growing Office 365 revenue. An important measure is the average revenue per user (ARPU), which has grown steadily over the last few years as Microsoft convinces customers to upgrade to more expensive licenses. Microsoft’s desire to drive ARPU higher won’t stop, so customers need to keep an eye on the licenses they buy to make sure that the licenses are suitable for the organization and assigned to the right people… and that no licenses are left unused.
The February 2023 update for the Office 365 for IT Pros (2023 edition) eBook is available for subscribers to download. This is the 92th monthly update for Office 365 for IT Pros, something that makes the book unique in terms of its ability to remain current in the changing world of Microsoft 365. In 2022, people in 82 different countries subscribed to Office 365 for IT Pros. That’s a proud record which we hope to improve on in the coming years.
Azure AD registered devices store some information about the operating system and version used when registration occurs. Although this information changes over time and isn’t updated by Azure AD, it might be of some interest and use to tenant administrators, so we show how to report it here. If you want accurate information, you’ll need to use Intune.
As developers update PowerShell scripts in preparation for the deprecation of the Azure AD and MSOL modules, they might need to insert new code to retrieve the membership of Azure AD groups for specific accounts. We cover that topic here, including the interesting case of the AdditionalProperties property returned by several Microsoft Graph PowerShell SDK cmdlets and the valuable information found there.
Microsoft plans to support IPv6 connectivity for Azure AD starting on March 31, 2023. The change creates specific requirements for conditional access policies that use named locations to allow or block connections. Administrators will have to add new IPv6 address ranges to named locations to allow users to continue to connect. Apart from that, it’s a matter of making sure that any reporting, analysis, or SIEM applications can deal with the new IPv6 data.
Every thirteen weeks, Microsoft shares some numbers as part of its quarterly results. The FY23 Q2 data included a new Teams user number (280 million monthly active users) and some clues that Office 365 is approaching 400 million paid seats – or maybe active users. You can never quite tell from the data Microsoft releases. One thing’s for sure. The cloud market is slowing in line with the general economy, which means that Microsoft needs to extract more money from each user to offset the slowdown in seat growth.
Microsoft announced support for concurrent Exchange Online license assignments, aka license stacking. This means that the workload can sort out the capabilities made available to a user through multiple licenses and make the maximum functionality available to the user through whatever’s deemed to be the “most superior” license. If that sounds like so much mumbo-jumbo, it might just be, unless you’ve been plagued by people losing access to their mailboxes because of shifting license assignments in the past. If you have, this change will make you very happy.
Microsoft plans to replace the Teams wiki with OneNote and will release a migration app to move content from wiki to OneNote. That’s great, but you need to know what channels include the wiki tab before you can decide what material should be migrated. This article explains how to use PowerShell to create a report of Teams channel tabs for wikis.
Microsoft has introduced a set of visual effects for Teams meetings. The Teams video effects are a set of styles and filters that apply to (augment) an existing video stream. It’s a cute idea that will mean a lot more to some users than others. You can stop people using Teams video effects by blocking the Custom Filters app in the Teams admin center. But that might be a pity because everyone deserves a little levity in life.
Microsoft has announced bookable time for OWA. It’s really just another entry point for the Bookings with Me app in an attempt to get more people to use the app. Bookings for me is a useful facility for people that need to publish available meeting slots for others to request time with them. Whether it’s something that the average Outlook users wants or needs is quite another matter.
The Microsoft 365 Groups Report (membership of groups and teams) originally used the Azure AD and Exchange Online PowerShell modules. Now its code uses only cmdlets from the Microsoft Graph PowerShell SDK. It’s an example of the kind of update that many organizations are going through due to the upcoming deprecation of the Azure AD and MSOL modules.
Azure AD Guest Accounts have a habit of becoming stale or obsolete as time progresses. Guest accounts created to share documents or to be a member of a long-forgotten team or group remain in Azure AD until someone comes to clean them up. This article explains how we refreshed a popular script to use cmdlets from the Microsoft Graph PowerShell SDK to report guest accounts with different degrees of staleness.
Planner grid view and recurring tasks are now available to Microsoft 365 tenants. Grid view is a much-requested feature while recurring tasks are also welcome, even if Microsoft forgot to tell people that the new capability was coming. Grid view is probably the biggest update Planner has received since 2020, but maybe an even bigger change is on the way with application permissions for the Planner Graph APIs. Time will tell.
Microsoft expects the Teams Premium license to be generally available in February 2023. In advance, Microsoft confirmed that they will move four features from the set covered by the Teams standard license to Teams Premium. In reality, this probably won’t affect many users, but does Microsoft really have to do this and run the risk of offending some people by demanding extra for features they use today?
Microsoft announced that they will retire Stream classic on February 15, 2024. It’s time to move to Stream on SharePoint, which moved into generally available status in October 2022. Lots of new features have been built into Stream on SharePoint, but the most notable thing about Stream 2.0 is that it’s more of a service for other Microsoft 365 workloads to consume than a video management and replay app.
Teams external federation allows users to chat with people in other Microsoft 365 tenants. External participants can see presence data unless you suppress it by running the Set-CsPrivacyConfiguration cmdlet to put the tenant into “privacy mode.” The policy affects everyone in the tenant and there’s no way to apply privacy mode to selected users.
Microsoft is adding the @Everyone mention to Teams group and meeting chats. Using @Everyone highlights a message to all chat participants by notifying them through their activity feed (dependent on user settings). It’s a feature similar to the @Team and @Channel mentions available for channel conversations. Not a huge advance, but welcome none the less.
Azure AD user accounts and Exchange Online mailboxes share many properties, including some for a user’s address. When it comes to countries, Azure AD has the country property while Exchange uses the CountryOrRegion property. Sometimes the two don’t match up. Why does this happen and does it matter in practical terms? What other country or regional settings exist that need to be managed? A simple question sets off a big discussion.
This article describes how to restore deleted Azure AD groups with PowerShell using cmdlets from the Microsoft Graph PowerShell SDK. Although options exist in the Microsoft 365 admin center and Azure AD admin center to restore deleted groups, it’s nice to have the option to do the same with PowerShell.
The Report a concern option is available in Teams personal and group chats when enabled in a messaging policy and the organization uses communication compliance policies. Microsoft creates a communication compliance policy automatically to process messages reported by users. The investigation process follows the same flow as for other communication compliance policies, even if the messages might vary a tad in terms of their content because it’s a very subjective decision by a user to report content. Overall, a nice feature to have.
Getting a new device means that some work must be done to ensure that apps work. This article explains how to add QR codes to the Microsoft Authenticator app so that the app has the credentials to respond to MFA challenges. We cover how to get QR codes for Azure AD accounts and how to do the same for guest accounts in other Microsoft 365 tenants.
This article explains how to use PowerShell to enable Exchange Online archive mailboxes after primary mailboxes reach a certain size. Some simple PowerShell code checks the mailbox size and if it’s too large, enables the archive and assigns a mailbox retention policy containing a default move to archive tag to move items from the primary to the archive mailbox. Some Azure Automation would make sure that the script runs periodically to keep mailboxes in good health.
The January 2023 update (#91) for the Office 365 for IT Pros eBook is available for subscribers to download. EPUB/PDF subscribers can fetch the updates from their Gumroad.com account while Amazon Kindle readers must contact Amazon support to arrange for the updates to be made available to them.
Microsoft announced that they will pause sending the daily Viva Briefing messages to make improvements to the personalized content in the messages. No detail has been revealed about the kind of changes Microsoft is contemplating, so all we can do is write some PowerShell to show which mailboxes are currently enabled to receive the daily briefing.
Teams holiday data define when users of the Teams phone system might not be at work and alternative calling arrangements exist. It’s easy to update holiday data using the Teams admin center, but it’s also easy to write a PowerShell script to update Teams about new holiday events on an ongoing basis. All explained here!
Microsoft has released the first public preview of the Microsoft Graph PowerShell SDK V2.0. Although the new version delivers some welcome functionality, it contains some contentious proposals such as dividing the SDK into V1.0 and beta modules and using different names for the beta cmdlets. It would be nice if Microsoft fixed some of the basic group and user cmdlets before they imposed more work on PowerShell developers.
Microsoft has announced that Exchange Online will block Remote PowerShell connections from July 1, 2023. Taken in isolation, this is excellent news and it will contribute to the move to use modern authentication for all client connections to Exchange Online. However, things aren’t quite so good when you realize that the final deprecation of the Azure AD and MSOL PowerShell modules take place at the same time. Lots of work to do to upgrade scripts!
The ChatGPT project is an interesting and worthwhile examination of how artificial intelligence can generate answers to questions. However, the answers depend on the source material, and the signs are that ChatGPT isn’t great at answering questions about Microsoft 365.
Microsoft is making 30-day trial licenses available to customers to test Teams Premium functionality with up to 25 users. Given the short test period that’s available, we suggest that organizations put the idea to one side until after the holidays are over. You can come back in 2023 and do some in-depth testing to find out if Teams Premium is worth the $10/user/month price tag.
A December 2 post by the Microsoft Graph development team clarifies how it plans to charge for some Microsoft 365 APIs. The three-tier model Microsoft plans to use is logical and the default will remain free access to customer data. However, the way Microsoft has communicated the introduction of a charging model for some high-capacity APIs is a model of how not to manage change.
On December 5, Microsoft announced a new Adobe Integration with Teams for PDF files stored in SharePoint Online and OneDrive for Business. The new integration uses an Azure AD enterprise app to link Teams to the Adobe Document Cloud. The new integration can’t handle protected PDFs, but you can always use a browser to view those files.
A new feature allows people to add participants to Teams group chats through @mentions in the compose box. It’s a nice feature that should have been there a long time ago. Microsoft says that adding new group chat participants this way saves a whole two clicks over the old way. Will those two clicks make any difference to you?
Microsoft will deprecate the Azure AD and MSOL PowerShell modules in June 2023. It’s time to convert scripts that use cmdlets from these modules and the Microsoft Graph PowerShell SDK is probably the best answer. This article explains how to generate a report of Exchange Online distribution list memberships, a task often handled in the past with Azure AD cmdlets.
Several methods exist to add new user accounts to groups automatically. Dynamic group membership is an obvious option, but other choices exist, including org-wide teams (if your organization is under 10,000 accounts) and using PowerShell to manage the automatic addition of new members to a standard distribution list or Microsoft 365 group. This article examines the various methods. Once you understand what’s possible, you can make the right choice.