Licensing – Office 365 for IT Pros https://office365itpros.com Mastering Office 365 and Microsoft 365 Thu, 22 Aug 2024 18:37:05 +0000 en-US hourly 1 https://i0.wp.com/office365itpros.com/wp-content/uploads/2024/06/cropped-Office-365-for-IT-Pros-2025-Edition-500-px.jpg?fit=32%2C32&ssl=1 Licensing – Office 365 for IT Pros https://office365itpros.com 32 32 150103932 Finding Non-Compliant Shared Mailboxes https://office365itpros.com/2024/08/26/shared-mailbox-signin/?utm_source=rss&utm_medium=rss&utm_campaign=shared-mailbox-signin https://office365itpros.com/2024/08/26/shared-mailbox-signin/#comments Mon, 26 Aug 2024 07:00:00 +0000 https://office365itpros.com/?p=66097

Identify Problematic Shared Mailboxes using Sign-in Logs

Exchange Online shared mailboxes have Entra ID accounts. The accounts have passwords and people can sign-into the account and start a mail client that’s connected to the shared mailbox to process email. Is this a problem? Absolutely!

Shared mailboxes don’t require Exchange Online or any other licenses unless the mailboxes have an archive, need more than 50 GB quota, use litigation hold, or are subject to Purview retention policies. As stated in the Microsoft service description:

To access a shared mailbox, a user must have an Exchange Online license, but the shared mailbox doesn’t require a separate license.”

No Need Exists to Sign Into Shared Mailboxes

Shared mailboxes are intended for joint access by multiple users whose connections are controlled by permissions managed by Exchange Online. Full Access permission allows a user full control over all mailbox folders and items while Send As or Send on Behalf Of allows them to send email from the mailbox. No need exists to sign into the Entra ID accounts for shared mailboxes, and if you sign into an unlicensed shared mailbox, you violate Microsoft licensing terms.

One reason I have heard advanced to justify signing into a shared mailbox is after someone leaves the organization and their mailbox is converted to a shared mailbox. If the mailbox includes some information that’s important to the organization, another user might need to sign into the mailbox to retrieve the data. I don’t buy this logic. Granting Full Access permission to the mailbox is sufficient to review the items stored there. I prefer to use inactive mailboxes to preserve ex-employee content instead. It’s just a cleaner solution.

Microsoft documentation says:

“A shared mailbox is a type of user mailbox that doesn’t have its own username and password. As a result, users can’t log into them directly.”

This is factually incorrect. Every shared mailbox has an ExternalDirectoryObjectId property that points to its Entra ID account. This PowerShell snippet uses the property to report the user principal names for the accounts:

$Mbx = Get-ExoMailbox -RecipientTypeDetails SharedMailbox -ResultSize Unlimited | Sort-Object DisplayName
ForEach ($M in $Mbx) {
    $User = Get-MgUser -UserId $M.ExternalDirectoryObjectId
    Write-Output ("Mailbox {0} has Entra ID account {1}" -f $M.DisplayName, $User.UserPrincipalName)
}
Mailbox Admin-RA-Shared has Entra ID account admin-ra-shared@office365itpros.com
Mailbox Azure Management Account has Entra ID account Azure.Management.Account@office365itpros.com

Changing the password and enabling the accounts to allow users to sign into the accounts is easy. If you don’t want to use PowerShell, you can select the account in the Microsoft 365 admin center and perform the actions there (Figure 1).

Figure 1: Unblocking a shared mailbox account in the Microsoft 365 admin center

Checking for Illegal Shared Mailboxes

Life isn’t perfect and people make mistakes. It’s possible that a tenant has some shared mailboxes that fall in a technically illegal state because people sign into the mailbox instead of connecting using mailbox permissions. To detect these situations, we can use the Get-MgAuditLogSignIn cmdlet to check if any sign-in records exist for the mailbox accounts. The account running the script must have an Entra ID P1 license to access the audit log records.

To illustrate the point, I wrote a script (downloadable from GitHub) to find shared mailboxes and check if they’ve been signed into. If so, a further check establishes if the mailbox’s account is licensed with Exchange Online Plan 1 or Plan 2. The output is shown in Figure 2.

Reporting Shared mailbox sign-in detections
Figure 2: Reporting mailbox sign-ins

Fortunately, the two mailboxes with detected sign-in records both have Exchange Online Plan 2 licenses, so they’re in compliance.

Other Checks

Microsoft doesn’t check shared mailboxes where other license requirements arise, like those with archive mailboxes or those on litigation hold. If you want to scan for those conditions, the necessary code is covered in this article. It wouldn’t take much to combine the two scripts to have one script that checks everything. I’ll leave that as an exercise for the reader.


Learn more about how the Office 365 applications really work on an ongoing basis by subscribing to the Office 365 for IT Pros eBook. Our monthly updates keep subscribers informed about what’s important across the Office 365 ecosystem.

]]>
https://office365itpros.com/2024/08/26/shared-mailbox-signin/feed/ 2 66097
Disabling Bits of Copilot for Microsoft 365 https://office365itpros.com/2024/04/30/copilot-for-microsoft-365-service-plans/?utm_source=rss&utm_medium=rss&utm_campaign=copilot-for-microsoft-365-service-plans https://office365itpros.com/2024/04/30/copilot-for-microsoft-365-service-plans/#comments Tue, 30 Apr 2024 07:00:00 +0000 https://office365itpros.com/?p=64575

Exerting Control Over Individual Copilot for Microsoft 365 Components

No doubt inspired by the article explaining how to remove individual features (service plans) from Microsoft 365 licenses, a reader asked if it is possible to control where Copilot for Microsoft 365 functionality surfaces in different apps. There’s no GUI in the Microsoft 365 admin center to disable bits of Copilot for a tenant. You can disable apps belonging to the Copilot license for a user account (Figure 1), but the question is what apps are bundled with Copilot for Microsoft 365 and what happens if administrators disable the apps for users.

Copilot for Microsoft 365 apps for a user account.
Figure 1: Copilot for Microsoft 365 apps for a user account

The Copilot for Microsoft 365 Service Plans

Looking into the details of the Copilot for Microsoft 365 license with the Microsoft Graph PowerShell SDK, we discover that the product (SKU) identifier is 639dec6b-bb19-468b-871c-c5c441c4b0cb and that the license covers eight service plans. As you’ll recall, a service plan governs functionality within a license that can be enabled or disabled. The Microsoft 365 admin center refers to service plans as apps when displaying the license information for a user.

Here’s how to find the license detail with PowerShell:

Connect-MgGraph -Scopes Directory.Read.All -NoWelcome
$CopilotSKU = Get-MgSubscribedSku | Where-Object SkuPartNumber -match "Microsoft_365_Copilot"
$CopilotSku.ServicePlans | Format-Table ServicePlanName, ServicePlanId

ServicePlanName                    ServicePlanId
---------------                    -------------
COPILOT_STUDIO_IN_COPILOT_FOR_M365 fe6c28b3-d468-44ea-bbd0-a10a5167435c
M365_COPILOT_SHAREPOINT            0aedf20c-091d-420b-aadf-30c042609612
GRAPH_CONNECTORS_COPILOT           82d30987-df9b-4486-b146-198b21d164c7
M365_COPILOT_CONNECTORS            89f1c4c8-0878-40f7-804d-869c9128ab5d
M365_COPILOT_APPS                  a62f8878-de10-42f3-b68f-6149a25ceb97
M365_COPILOT_TEAMS                 b95945de-b3bd-46db-8437-f2beb6ea2347
M365_COPILOT_BUSINESS_CHAT         3f30311c-6b1e-48a4-ab79-725b469da960
M365_COPILOT_INTELLIGENT_SEARCH    931e4a88-a67f-48b5-814f-16a5f1e6028d

Table 1 summarizes the service plans included in the Copilot for Microsoft 365 license.

Service Plan NameUser Friendly Feature NameService Plan Id
GRAPH_CONNECTORS_COPILOTGraph Connectors in Microsoft 365 Copilot82d30987-df9b-4486-b146-198b21d164c7
M365_COPILOT_INTELLIGENT_SEARCHIntelligent Search (Semantic Index)931e4a88-a67f-48b5-814f-16a5f1e6028d
M365_COPILOT_BUSINESS_CHATMicrosoft Copilot with Graph-grounded chat3f30311c-6b1e-48a4-ab79-725b469da960
M365_COPILOT_TEAMSMicrosoft 365 Copilot in Microsoft Teamsb95945de-b3bd-46db-8437-f2beb6ea2347
M365_COPILOT_APPSMicrosoft 365 Copilot in Productivity Apps (Office)a62f8878-de10-42f3-b68f-6149a25ceb97
M365_COPILOT_CONNECTORSPower Platform Connectors in Microsoft 365 Copilot89f1c4c8-0878-40f7-804d-869c9128ab5d
M365_COPILOT_SHAREPOINTMicrosoft 365 Copilot in SharePoint0aedf20c-091d-420b-aadf-30c042609612
COPILOT_STUDIO_IN_COPILOT_FOR_M365Copilot Studiofe6c28b3-d468-44ea-bbd0-a10a5167435c
Table 1: Copilot for Microsoft 365 Service Plans
COPILOT_STUDIO_IN_COPILOT_FOR_M365Copilot Studiofe6c28b3-d468-44ea-bbd0-a10a5167435c

What the Copilot for Microsoft 365 Service Plans Do

The Copilot service plans split into those governing user-facing features and background or administrative functionality.

User functionality:

  • Microsoft Copilot with Graph-grounded chat
  • Microsoft 365 Copilot in Microsoft Teams (app, summarization of chats and meeting discussions, ability to rewrite/adjust messages before posting to chats or channel conversations)
  • Microsoft 365 Copilot in Productivity Apps (Word, Excel, PowerPoint, Outlook (Win32 and Monarch), Loop, OneNote)

Teams and the productivity apps support Copilot in the desktop, browser, and mobile platforms.

Background and administrative functionality:

Copilot Studio.
Figure 2: Copilot Studio

Turning Off Bits of Copilot

Getting back to the original question, control is available over the chat app, Copilot in Teams, and the generalized bucket of productivity apps. For example, you cannot turn off Copilot for Word and Excel and have it available in PowerPoint and Outlook. The productivity apps are either enabled or disabled for Copilot. Granular control isn’t available.

Copilot for Office depends on the Microsoft 365 enterprise apps (subscription version of Office). Using another version, like Office 2024 (preview available now) isn’t possible because these apps don’t include the necessary UI and code to communicate with Copilot.

The answer to the question is that you can turn bits of Copilot for Microsoft 365 off. For instance, not everyone needs access to Copilot Studio. I’m not sure that I would disable any of the other service plans for background and administrative activity because you don’t know if the action might affect how the user-facing apps work. Disabling a user app certainly works and the license change will be effective within fifteen minutes for browser-based apps (Figure 3) and a few hours for desktop apps, depending on when the app refreshes its license information.

Microsoft Copilot chat discovers that it doesn't have a license.
Figure 3: Microsoft Copilot chat discovers that it doesn’t have a license

But if an organization is paying $360/year for Copilot for Microsoft 365 licenses, surely the imperative is to extract maximum value for the investment instead of restricting what people can use? But if you do decide to disable service plans from the Copilot for Microsoft 365 license, the script will happily do the job for you.


So much change, all the time. It’s a challenge to stay abreast of all the updates Microsoft makes across the Microsoft 365 ecosystem. Subscribe to the Office 365 for IT Pros eBook to receive monthly insights into what happens, why it happens, and what new features and capabilities mean for your tenant.

]]>
https://office365itpros.com/2024/04/30/copilot-for-microsoft-365-service-plans/feed/ 1 64575
How to Remove a Single Service Plan from Multiple User Accounts with PowerShell https://office365itpros.com/2021/08/18/remove-service-plan-powershell/?utm_source=rss&utm_medium=rss&utm_campaign=remove-service-plan-powershell https://office365itpros.com/2021/08/18/remove-service-plan-powershell/#comments Wed, 18 Aug 2021 01:00:00 +0000 https://office365itpros.com/?p=51156

Remove Service Plan PowerShell to Manage User Functionality

Note: This post is now obsolete. Please see this article for an updated approach to the problem.

Service plans are non-saleable elements of a Microsoft licensable product (SKU or stock keeping unit). SKUs are what people often think of when they discuss licenses. Individual Microsoft 365 accounts can have multiple SKUs, such as TOPIC_EXPERIENCES, ENTERPRISEPACK, and EMSPREMIUM. The product names for these SKUs are Viva Topics, Office 365 E3, and Enterprise Mobility and Security E5. Product names appear in places like the Billing section of the Microsoft 365 admin center (Figure 1).

Product names in the Microsoft 365 admin center

Remove service plans PowerShell
Figure 1: Product Names in the Microsoft 365 admin center

At a more granular level, a “bundled” SKU like Office 365 E3 includes multiple service plans, each of which enable access to some functionality like an app. This page lays details the connections between SKUS and service plans.

At the time of writing, Office 365 E3 covers 28 service plans and Office 365 E5 has 53. Office 365 E5 includes service plans to license capabilities like advanced compliance features, customer lockbox, advanced auditing, content explorer, server-based auto-labeling for sensitivity labels and retention labels, records management, and information barriers.

Microsoft introduces new service plans to enhance its ability to license new features to different user communities or to provide control over user access to a new feature. Teams is a good example. The Teams service plan (TEAMS1) is in many Office 365 and Microsoft 365 SKUs. In April, Microsoft announced they would add the Teams Pro service plan to some SKUs and will use the Teams Pro service plan to allow accounts licensed with those SKUs to access new features. To date, Microsoft has not added the Teams Pro service plan to any SKU in my tenant nor have they described what features the new service plan will cover.

Reviewing Available Service Plans

In some cases, tenant administrators might not want users to be able to access a licensed app or capability. Perhaps the feature is obsolete, or the organization has different software to do the same thing, or maybe a delay is necessary to enable preparation of training, documentation, and support. Some years ago, Microsoft made a big thing about Kaizala and its impending integration into Teams. Kaizala is now an obsolete feature that’s still available in Office 365 E3 and E5. Sway is in the same category. Microsoft Bookings is an optional feature which isn’t often used by enterprise users, but it’s also part of Office 365 E3 and E5. In short, when you review the set of service plans bundled into Office 365 and Microsoft 365 SKUs, you might be surprised at the amount of unwanted debris in the mix.

Removing Individual Service Plans

Let’s say that we want to remove individual service plans from SKUs assigned to users. This post describes how to report the accounts assigned individual service plans (licenses) and explains how Azure AD stores the service plan information in user accounts. We want to go further by removing access to selected service plans, and as it turns out, we must use cmdlets from the older Microsoft Online Services module to get the job done. It’s possible to use the Set-AzureADUserLicense cmdlet to remove a service plan from an account. Laziness and the availability of some existing code to do the job stopped me using this cmdlet.

In any case, I wrote a script to demonstrate the principle of the steps to remove an individual service plan from multiple Microsoft 365 accounts. Three versions are available.

Given that Microsoft deprecated the licensing management cmdlets in the MSOL and Azure AD modules in 2023, it makes sense to focus on the version based on the Microsoft Graph PowerShell SDK.

The major steps to remove a service plan from Azure AD licenses with PowerShell are:

  • Determine the set of SKUs (products) available in the tenant.
  • Select the SKU to remove a service plan from. A tenant might use many SKUs, so we read the information with Get-AzureADSubscribedSKU (or Get-MgSubscribedSku) and ask the administrator to choose a SKU.
  • Select the service plan from the chosen SKU to remove. This is a matter of reading the service plans from the SKU and asking the administrator to choose one.
  • Select the target accounts. I use Get-ExoMailbox to fetch a set of user mailboxes because this cmdlet supports a wide range of server-side filters (for instance, everyone in a country or department). The important thing is that you fetch the Azure AD object identifiers for the target accounts. The Microsoft Graph PowerShell SDK version doesn’t use Exchange Online because it reads the licensed account information direct from Azure AD.
  • Access each account (using its object identifier) and remove the service plan. The MSOL version does this by running the Set-MsolUserLicense cmdlet. The Azure AD version uses the Set-AzureADUserLicense cmdlet, while the Graph SDK uses Set-MgUserLicense.
  • Report the service plans removed from SKUs assigned to the target mailboxes.

Figure 2 shows the MSOL version of the script in action. You can see the selection of the service domain, SKU, and service plan and processing of user accounts. In this case, the selected options remove the Sway service plan from the ENTERPRISEPACK (Office 365 E3) SKU.

Selecting the SWAY service plan to remove

Remove Azure AD license PowerShell
Figure 2: Running the script to remove the SWAY service plan from Office 365 E3 licenses assigned to Microsoft 365 users

The report output is a CSV file. Figure 3 shows the information captured in the report as viewed through the Out-GridView cmdlet.

Reporting the removal of a service plan

How to remove an Azure AD license with PowerShell
Figure 3: Reporting the removal of a service plan

PowerShell Scores Again

I’m sure others will have different ways to solve the problem of removing service plans from SKUs, which is just fine. What’s obvious here (once again) is that PowerShell is a very flexible tool for automating administrative operations. Which is why I am so surprised when tenant administrators admit that they have never taken the time to become acquainted with the basics of PowerShell scripting. It’s not difficult; there are tons of available examples to learn from; and it gets work done. All good stuff!


Learn more about how Office 365 really works on an ongoing basis by subscribing to the Office 365 for IT Pros eBook. Our monthly updates keep subscribers informed about what’s important across the Office 365 ecosystem.

]]>
https://office365itpros.com/2021/08/18/remove-service-plan-powershell/feed/ 10 51156
Microsoft 365 Licensing, Yammer and Teams, Office DPIA, and Exchange https://office365itpros.com/2019/02/15/office-365-changes-yammer-teams-exchange/?utm_source=rss&utm_medium=rss&utm_campaign=office-365-changes-yammer-teams-exchange https://office365itpros.com/2019/02/15/office-365-changes-yammer-teams-exchange/#comments Fri, 15 Feb 2019 13:30:33 +0000 https://office365itpros.com/?p=1761

Something’s Always Changing inside Office 365

The Office 365 for IT Pros writing team does our very best to track the ongoing changes within the service so that we can analyze and report on important updates in the book. Given the volume of change, not all of which shows up in the Office 365 Roadmap or publicly announced by Microsoft, it’s a task that keeps us busy. This week was no exception. Here are some interesting things that happened.

Microsoft Responses to Dutch Complaints about Office

In November 2018, a Data Protection Impact Assessment (DPIA) report for the Dutch Government slammed Microsoft because of the volume and type of data gathered by Office 2016 and the Office Online Apps. Microsoft uses the data to track how people use their technology and identify problems, but in the era of GDPR you’ve got to be careful about consent, ownership, and control of data.

Politico.eu reports that Microsoft has committed to update the Office desktop products by the end of April 2019. What’s missing is any discussion about changes for the Office Online Apps, specifically SharePoint Online, or the other information gathered by Office 365 in places like the audit log (see my Petri.com article for details). I feel there’s more to come here.

Yammer Feels Pressure from Teams

The news that Yammer had lost out to Workplace by Facebook in GSK was known last November. To balance the ledger, Microsoft has large multinationals like Shell and public bodies like the Belgian Police to talk about how they use Yammer. On the surface, it’s OK to lose some customers if you’re gaining others.

But the fact that Teams now supports teams with up to 5,000 members puts pressure on Yammer from an internal source. Microsoft marketing uses an inner-outer loop analogy to position Teams and Yammer and worked quite well when the largest team maxed out at 2,500 members. Doubling the limit makes Teams a bigger danger to Yammer because it cuts the number of companies who need to deploy Yammer to support large-scale conversations.

Microsoft marketing uses the inner-outer loop analogy to position Teams and Yammer
A 5,000-member team is quite an inner loop

Things aren’t all rosy for Teams. A 5,000-member conversation could be bedlam and the management tools mightn’t be quite ready to support such large groups. On the upside for Teams, it is better integrated into Office 365 than Yammer is, especially in terms of compliance and eDiscovery. It’s also true that the market growth is in Teams, so where this all leaves Yammer, even if its new management delivers what was promised at Ignite 2018, is anyone’s guess.

Exchange Fixes a Privilege Elevation Vulnerability

On Patch Tuesday this week, Microsoft issued updates for Exchange 2010, 2013, 2016, and 2019 to address a privilege elevation vulnerability. Unusually, Microsoft changed the internal architecture to address problems in Exchange Web Services (EWS) push notifications and its connection to Active Directory.

It’s interesting that although many reports were published about the original problem and the dire consequences that might ensue should an attack penetrate your Exchange server, relatively few sites followed up with coverage about the fixes. This proves that bad news is always easier to sell than good. It’s also worth noting that no evidence exists that the techniques exploited by the vulnerability were ever used to attack Exchange outside test conditions.

The EWS fix has been in production in Exchange Online for some time and no problems have been noted with clients that consume push notifications (to learn about new mail, for instance). It’s a nice example of how Office 365 validates fixes at massive scale before code is delivered to on-premises customers. On the other hand, it can be argued that the vulnerability is yet another reminder why it’s easier to run email in the cloud…

Charting Microsoft 365 E3 and E5

Microsoft employee Aaron Dunnage did the community a favor by publishing some graphics to illustrate the component parts of the Microsoft 365 E3 and E5 plans. Only licensing specialists find the details of the licenses and add-ons you might need for different Office 365 features, so it’s nice to have a graphic overview. A reduced-size version is shown below. To get the real thing, go to Aaron’s Github repository.

Graphs showing the different components of Microsoft 365 E3 and E5
Breaking Microsoft E3 and E5 down into boxes

With so much changing that affects how Office 365 works, don’t you think you need to learn from a book that’s always being updated? Subscribe to Office 365 for IT Pros today!

]]>
https://office365itpros.com/2019/02/15/office-365-changes-yammer-teams-exchange/feed/ 2 1761
Teams Meeting Room Licenses Now Available for Purchase https://office365itpros.com/2018/12/17/teams-device-meeting-license/?utm_source=rss&utm_medium=rss&utm_campaign=teams-device-meeting-license https://office365itpros.com/2018/12/17/teams-device-meeting-license/#comments Mon, 17 Dec 2018 13:22:47 +0000 https://office365itpros.com/?p=1221
Or $15 a month in U.S. currency

Now available through the Billing section of the Office 365 Admin Center, you can stock up on new Meeting Room licenses. These licenses are used to allow access to Microsoft’s Cloud Voice services for room devices connected to Teams, like the HP Elite Slice with Logitech Meetup shown below. The These devices run a version of the Teams client for Android with enough functionality included to allow the device to participate in Teams meetings.

HP Elite Slice (photo: Microsoft)

Use the Old Office 365 Admin Center

Curiously, I wasn’t able to find the Meeting Room license through the preview version of the redesigned Office 365 Admin Center and had to revert to the older version.

After purchase, you can assign the license to an Exchange room mailbox (which doesn’t need a full-blown Office 365 license) assigned to a Microsoft-approved room devices. The choice of available devices will differ from country to country (here’s the set available in the U.S.), as will prices. The device can then connect into a Teams meeting with voice and video (if the device supports video). Remember that you need to configure the account to use a calling plan or direct routing to enable the device to connect with meetings.

If you use Skype for Business Online, you should read this primer on devices and licenses.

What’s Included in the License

For your $15/month, the meeting room is licensed for: 

Teams licensing (in general) is covered here. No good public write-up from Microsoft about the Teams Meeting Room license is available, so the information reported above is what we know for now.


For more information about all you need to know to conduct successful Teams meetings, read Chapter 16 of the Office 365 for IT Pros eBook.

]]>
https://office365itpros.com/2018/12/17/teams-device-meeting-license/feed/ 1 1221