Tilldela Microsoft 365-licenser till användar konton med PowerShellAssign Microsoft 365 licenses to user accounts with PowerShell

Denna artikel gäller för både Microsoft 365 Enterprise och Office 365 Enterprise.This article applies to both Microsoft 365 Enterprise and Office 365 Enterprise.

Användare kan inte använda några Microsoft 365-tjänster förrän deras konto har tilldelats en licens från en licens plan.Users can't use any Microsoft 365 services until their account has been assigned a license from a licensing plan. Du kan använda PowerShell för att snabbt tilldela licenser till olicensierade konton.You can use PowerShell to quickly assign licenses to unlicensed accounts.

Anteckning

Användar konton måste tilldelas en plats.User accounts must be assigned a location. Du kan göra detta från egenskaperna för ett användar konto i Microsoft 365 Admin Center eller från PowerShell.You can do this from the properties of a user account in the Microsoft 365 admin center or from PowerShell.

Anteckning

Lär dig hur du tilldelar licenser till användar konton med Microsoft 365 Admin Center.Learn how to assign licenses to user accounts with the Microsoft 365 admin center. En lista över ytterligare resurser finns i Hantera användare och grupper.For a list of additional resources, see Manage users and groups.

Använda Azure Active Directory PowerShell för diagramvynUse the Azure Active Directory PowerShell for Graph module

Börja med att ansluta till din Microsoft 365-klient organisation.First, connect to your Microsoft 365 tenant.

Sedan visar du licens abonnemang för klient organisationen med det här kommandot.Next, list the license plans for your tenant with this command.

Get-AzureADSubscribedSku | Select SkuPartNumber

Sedan hämtar du inloggnings namnet för det konto som du vill lägga till en licens för och det kallas även användarens huvud namn (UPN).Next, get the sign-in name of the account to which you want add a license, also known as the user principal name (UPN).

Se sedan till att användar kontot har tilldelats en användnings plats.Next, ensure that the user account has a usage location assigned.

Get-AzureADUser -ObjectID <user sign-in name (UPN)> | Select DisplayName, UsageLocation

Om det inte finns någon användnings plats kan du tilldela en med dessa kommandon:If there is no usage location assigned, you can assign one with these commands:

$userUPN="<user sign-in name (UPN)>"
$userLoc="<ISO 3166-1 alpha-2 country code>"
Set-AzureADUser -ObjectID $userUPN -UsageLocation $userLoc

Ange slutligen användar inloggnings namn och namn på en licens och kör dessa kommandon.Finally, specify the user sign-in name and license plan name and run these commands.

$userUPN="<user sign-in name (UPN)>"
$planName="<license plan name from the list of license plans>"
$License = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicense
$License.SkuId = (Get-AzureADSubscribedSku | Where-Object -Property SkuPartNumber -Value $planName -EQ).SkuID
$LicensesToAssign = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicenses
$LicensesToAssign.AddLicenses = $License
Set-AzureADUserLicense -ObjectId $userUPN -AssignedLicenses $LicensesToAssign

Använda Microsoft Azure Active Directory-modulen för Windows PowerShellUse the Microsoft Azure Active Directory Module for Windows PowerShell

Börja med att ansluta till din Microsoft 365-klient organisation.First, connect to your Microsoft 365 tenant.

Kör Get-MsolAccountSku kommandot för att visa tillgängliga licens planer och antalet tillgängliga licenser för varje plan i organisationen.Run the Get-MsolAccountSku command to view the available licensing plans and the number of available licenses in each plan in your organization. Antalet tillgängliga licenser för varje abonnemang är ActiveUnits - WarningUnits - ConsumedUnits.The number of available licenses in each plan is ActiveUnits - WarningUnits - ConsumedUnits. Mer information om licens planer, licenser och tjänster finns i Visa licenser och tjänster med PowerShell.For more information about licensing plans, licenses, and services, see View licenses and services with PowerShell.

Anteckning

PowerShell Core stöder inte Microsoft Azure Active Directory-modul för Windows PowerShell-modulen och-cmdlets med MSOL i namnet.PowerShell Core does not support the Microsoft Azure Active Directory Module for Windows PowerShell module and cmdlets with Msol in their name. Om du vill fortsätta använda dessa cmdlets måste du köra dem från Windows PowerShell.To continue using these cmdlets, you must run them from Windows PowerShell.

Kör det här kommandot för att hitta de olicensierade kontona i organisationen.To find the unlicensed accounts in your organization, run this command.

Get-MsolUser -All -UnlicensedUsersOnly

Du kan bara tilldela licenser till användar konton som har egenskapen UsageLocation inställd på en giltig ISO 3166-1 alpha-2-landskod.You can only assign licenses to user accounts that have the UsageLocation property set to a valid ISO 3166-1 alpha-2 country code. Till exempel för USA och FR för Frankrike.For example, US for the United States, and FR for France. Vissa Microsoft 365-tjänster är inte tillgängliga i vissa länder.Some Microsoft 365 services aren't available in certain countries. Mer information finns i om licens begränsningar.For more information, see About license restrictions.

Kör det här kommandot för att hitta konton som inte har något UsageLocation -värde.To find accounts that don't have a UsageLocation value, run this command.

Get-MsolUser -All | where {$_.UsageLocation -eq $null}

Om du vill ange UsageLocation -värdet för ett konto kör du det här kommandot.To set the UsageLocation value on an account, run this command.

Set-MsolUser -UserPrincipalName "<Account>" -UsageLocation <CountryCode>

Till exempel:For example:

Set-MsolUser -UserPrincipalName "belindan@litwareinc.com" -UsageLocation US

Om du använder cmdleten Get-MsolUser utan att använda parametern -all returneras bara de första 500-kontona.If you use the Get-MsolUser cmdlet without using the -All parameter, only the first 500 accounts are returned.

Tilldela licenser till användar kontonAssigning licenses to user accounts

Om du vill tilldela en licens till en användare använder du följande kommando i PowerShell.To assign a license to a user, use the following command in PowerShell.

Set-MsolUserLicense -UserPrincipalName "<Account>" -AddLicenses "<AccountSkuId>"

I det här exemplet tilldelas en licens från licens planen litwareinc: ENTERPRISEPACK (Office 365 Enterprise E3)-licens plan till den olicensierade användaren ** @ litwareinc.com**:This example assigns a license from the litwareinc:ENTERPRISEPACK (Office 365 Enterprise E3) licensing plan to the unlicensed user belindan@litwareinc.com:

Set-MsolUserLicense -UserPrincipalName "belindan@litwareinc.com" -AddLicenses "litwareinc:ENTERPRISEPACK"

Om du vill tilldela en licens till alla olicensierade användare kör du det här kommandot.To assign a license to all unlicensed users, run this command.

Get-MsolUser -All -UnlicensedUsersOnly [<FilterableAttributes>] | Set-MsolUserLicense -AddLicenses "<AccountSkuId>"

Anteckning

Du kan inte tilldela flera licenser till en användare från samma licens plan.You can't assign multiple licenses to a user from the same licensing plan. Om du inte har tillräckligt med licenser är de tilldelade till användarna i den ordning som de returneras av cmdleten Get-MsolUser tills de tillgängliga licenserna tar slut.If you don't have enough available licenses, the licenses are assigned to users in the order that they're returned by the Get-MsolUser cmdlet until the available licenses run out.

I det här exemplet tilldelas licenser från licens planen litwareinc: ENTERPRISEPACK (Office 365 Enterprise E3) till alla olicensierade användare:This example assigns licenses from the litwareinc:ENTERPRISEPACK (Office 365 Enterprise E3) licensing plan to all unlicensed users:

Get-MsolUser -All -UnlicensedUsersOnly | Set-MsolUserLicense -AddLicenses "litwareinc:ENTERPRISEPACK"

I det här exemplet tilldelas dessa licenser till olicensierade användare på försäljnings avdelningen i USA:This example assigns those same licenses to unlicensed users in the Sales department in the United States:

Get-MsolUser -All -Department "Sales" -UsageLocation "US" -UnlicensedUsersOnly | Set-MsolUserLicense -AddLicenses "litwareinc:ENTERPRISEPACK"

Flytta en användare till ett annat abonnemang (licens plan) med Azure Active Directory PowerShell för GraphMove a user to a different subscription (license plan) with the Azure Active Directory PowerShell for Graph module

Börja med att ansluta till din Microsoft 365-klient organisation.First, connect to your Microsoft 365 tenant.

Sedan hämtar du inloggnings namnet för det användar konto som du vill byta abonnemang för och det kallas även användarens huvud namn (UPN).Next, get the sign-in name of the user account for which you want switch subscriptions, also known as the user principal name (UPN).

Sedan visar du abonnemangen (licens planerna) för klient organisationen med det här kommandot.Next, list the subscriptions (license plans) for your tenant with this command.

Get-AzureADSubscribedSku | Select SkuPartNumber

Sedan visar du de abonnemang som användar kontot för närvarande har med dessa kommandon.Next, list the subscriptions that the user account currently has with these commands.

$userUPN="<user account UPN>"
$licensePlanList = Get-AzureADSubscribedSku
$userList = Get-AzureADUser -ObjectID $userUPN | Select -ExpandProperty AssignedLicenses | Select SkuID 
$userList | ForEach { $sku=$_.SkuId ; $licensePlanList | ForEach { If ( $sku -eq $_.ObjectId.substring($_.ObjectId.length - 36, 36) ) { Write-Host $_.SkuPartNumber } } }

Identifiera den prenumeration som användaren för närvarande har (från-prenumerationen) och det abonnemang som användaren flyttar (till-abonnemanget).Identify the subscription the user currently has (the FROM subscription) and the subscription to which the user is moving (the TO subscription).

Ange slutligen till och från prenumerations namnen (SKU-artikelnummer) och kör dessa kommandon.Finally, specify the TO and FROM subscription names (SKU part numbers) and run these commands.

$subscriptionFrom="<SKU part number of the current subscription>"
$subscriptionTo="<SKU part number of the new subscription>"
# Unassign
$license = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicense
$licenses = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicenses
$license.SkuId = (Get-AzureADSubscribedSku | Where-Object -Property SkuPartNumber -Value $subscriptionFrom -EQ).SkuID
$licenses.AddLicenses = $license
Set-AzureADUserLicense -ObjectId $userUPN -AssignedLicenses $licenses
$licenses.AddLicenses = @()
$licenses.RemoveLicenses =  (Get-AzureADSubscribedSku | Where-Object -Property SkuPartNumber -Value $subscriptionFrom -EQ).SkuID
Set-AzureADUserLicense -ObjectId $userUPN -AssignedLicenses $licenses
# Assign
$license.SkuId = (Get-AzureADSubscribedSku | Where-Object -Property SkuPartNumber -Value $subscriptionTo -EQ).SkuID
$licenses = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicenses
$licenses.AddLicenses = $License
Set-AzureADUserLicense -ObjectId $userUPN -AssignedLicenses $licenses

Du kan kontrol lera prenumerationens ändring för användar kontot med dessa kommandon.You can verify the change in subscription for the user account with these commands.

$licensePlanList = Get-AzureADSubscribedSku
$userList = Get-AzureADUser -ObjectID $userUPN | Select -ExpandProperty AssignedLicenses | Select SkuID 
$userList | ForEach { $sku=$_.SkuId ; $licensePlanList | ForEach { If ( $sku -eq $_.ObjectId.substring($_.ObjectId.length - 36, 36) ) { Write-Host $_.SkuPartNumber } } }

Se ävenSee also

Hantera användarkonton,-licenser och-grupper med PowerShellManage user accounts, licenses, and groups with PowerShell

Hantera Microsoft 365 med PowerShellManage Microsoft 365 with PowerShell

Börja använda PowerShell för Microsoft 365Getting started with PowerShell for Microsoft 365