---
title: How to Use Set-MsolUserLicense in Powershell
slug: set-msoluserlicense-powershell
published: 2024-03-14T20:53:31.000Z
updated: 2024-03-14T20:53:31.000Z
feature_image: /blog/images/set-msoluserlicense-powershell/set-msoluserlicense-syntax-microsoft-learn.1600.webp
feature_image_alt: Microsoft Learn documentation for the Set-MsolUserLicense cmdlet showing its PowerShell syntax
author: James Futhey
author_slug: james
meta_description: "Do you need to assign new user licenses within your organization? Learn how to use Set-MsolUserLicense right here."
status: published
---

**Managing all the license options** within an organization can turn into a daunting challenge if you don't know how to do it.

Fortunately for us, PowerShell has come to the rescue - the **Set-MsolUserLicense cmdlet will help us assign, remove, and update user licenses** within a few clicks.

Let's learn **how to use Set-MsolUserLicense in PowerShell** by following three easy steps.

## What is the Set-MsolUserLicense Cmdlet?

Set-MsolUserLicense is a PowerShell cmdlet part of the Microsoft Online Services PowerShell module (MSOnline module), which allows administrators to **manage user accounts and licenses in Microsoft 365 through PowerShell.**

Specifically, Set-MsolUserLicense is used to assign or remove licenses for Microsoft 365 services to/from a user.

This cmdlet is helpful when you need to adjust the **licensing configuration for individual users in your Microsoft 365 environment**, and this is the syntax of [Set-MsolUserLicense](https://learn.microsoft.com/en-us/powershell/module/msonline/set-msoluserlicense):

```powershell
Set-MsolUserLicense
-ObjectId <Guid>
[-LicenseOptions <LicenseOption[]>]
[-AddLicenses <String[]>]
[-RemoveLicenses <String[]>]
[-TenantId <Guid>]
[<CommonParameters>]
```

Let's quickly explore the meaning of the parameters on the syntax:

-   **ObjectId:** Unique identifier for the user targeted for license modification.
-   **LicenseOptions:** Additional settings for license assignment (optional).
-   **AddLicenses:** Specifies the array of licenses to be added to the user.
-   **RemoveLicenses Parameter:** Licenses to be removed from the user.
-   **TenantId:** Identifier for the Microsoft 365 tenant (useful in multi-tenant environments).

## What Can You Use Set-MsolUserLicense For?

By using Set-MsolUserLicense, organization administrators can perform active license management tasks such as the following:

-   **Onboarding a New Employee:** When a new employee joins the company, use Set-MsolUserLicense to grant them access to Microsoft 365 services by assigning a specific license, such as one that includes email, collaboration tools, and other applications.
-   **Offboarding a Departing Employee:** When an employee leaves the organization, use the cmdlet to remove their Microsoft 365 license, ensuring that they no longer have access to company resources and services.
-   **Adjusting License Plans for Role Changes:** If an employee's role changes within the organization, use Set-MsolUserLicense to modify their license plan. For example, upgrade a user to a plan that offers more advanced features or downgrade to a plan with fewer features based on their new responsibilities.

## How to Use Set-MsolUserLicense in PowerShell

To use Set-MsolUserLicense, we'll follow **three quick steps.**

### Step 1: Connect to Office 365

First, we need to **connect to Exchange Online PowerShell** by using the following command:

```powershell
Connect-ExchangeOnline -UserPrincipalName youremail@meetingroom365.com
```

Then, we'll use this command to **access the Microsoft Office 365 module:**

```powershell
Connect-MsolService
```

Remember to log in using your own **Microsoft credentials** (email address and password) with enough admin permissions to proceed.

### Step 2: Run Set-MsolUserLicense

Once you have connected to the desired environment, it's time to run the Set-MsolUserLicense command. Take a look at the following example:

```powershell
Set-MsolUserLicense -UserPrincipalName "james@meetingroom365.com" -AddLicenses "MeetingRoom365:ENTERPRISEPACK"
```

In this case, the command **adds the Office 365 for Enterprises license to the user james@meetingroom365.com.**

If, instead of adding licenses to the current user, you wish to **remove them**, then the command would look like this:

```powershell
Set-MsolUserLicense -UserPrincipalName "james@meetingroom365.com" -RemoveLicenses "MeetingRoom365:ENTERPRISEPACK"
```

This cmdlet **removes the Office 365 for Enterprises license from the user james@meetingroom365.com.**

### Step 3: Verify the Changes Using the Get-MsolUser Cmdlet

After running the Set-MsolUserLicense command, it's time to verify the new licensed users (or unlicensed users) to **see if the changes have been correctly applied.**

To do this, run the following command:

```powershell
Get-MsolUser -UserPrincipalName james@meetingroom365.com
```

This command **retrieves and displays information about the specified user, including their assigned licenses.** This way, you can check that all the changes were correctly applied as expected.

## Wrapping Up: Using the Set-MsolUserLicense Command

Using the Set-MsolUserLicense command provides us with **more control over the different licenses that users in an organization can have.**

Either way, keep in mind that due to the recent changes in the Azure Active Directory module, Microsoft is planning to **deprecate certain PowerShell commands in** [March, 2024](https://techcommunity.microsoft.com/t5/microsoft-entra-blog/important-azure-ad-graph-retirement-and-powershell-module/ba-p/3848270).

In that case, it's important to learn how to license users with other commands, such as the Set-MgUserLicense cmdlet.
