Zuweisen von Microsoft 365-Lizenzen zu Benutzerkonten mit PowerShellAssign Microsoft 365 licenses to user accounts with PowerShell

Dieser Artikel gilt sowohl für Microsoft 365 Enterprise als auch für Office 365 Enterprise.This article applies to both Microsoft 365 Enterprise and Office 365 Enterprise.

Benutzer können keine Microsoft 365-Dienste verwenden, bis Ihrem Konto eine Lizenz aus einem Lizenzierungs Plan zugewiesen wurde.Users can't use any Microsoft 365 services until their account has been assigned a license from a licensing plan. Sie können PowerShell verwenden, um nicht lizenzierten Konten schnell Lizenzen zuzuweisen.You can use PowerShell to quickly assign licenses to unlicensed accounts.

Benutzerkonten muss zunächst ein Standort zugewiesen werden.User accounts must first be assigned a location. Das Angeben eines Speicherorts ist ein erforderlicher Bestandteil des Erstellens eines neuen Benutzerkontos im Microsoft 365 Admin Center.Specifying a location is a required part of creating a new user account in the Microsoft 365 admin center.

Konten, die von Ihrem lokalen Active Directory-Domänendienste synchronisiert werden, haben standardmäßig keinen Speicherort angegeben.Accounts synchronized from your on-premises Active Directory Domain Services do not by default have a location specified. Sie können einen Speicherort für diese Konten aus konfigurieren:You can configure a location for these accounts from:

  • Das Microsoft 365 Admin CenterThe Microsoft 365 admin center
  • PowerShellPowerShell
  • Das Azure-Portal (Active Directory > Benutzer > Benutzerkonto > Profil > Kontaktinformationen > Land oder Region).The Azure portal (Active Directory > Users > user account > Profile > Contact info > Country or region).

Hinweis

Informationen zum Zuweisen von Lizenzen zu Benutzerkonten mit dem Microsoft 365 Admin Center.Learn how to assign licenses to user accounts with the Microsoft 365 admin center. Eine Liste mit weiteren Ressourcen finden Sie unter Verwalten von Benutzern und Gruppen.For a list of additional resources, see Manage users and groups.

Verwenden der Azure Active Directory PowerShell für Graph-ModuleUse the Azure Active Directory PowerShell for Graph module

Stellen Sie zunächst eine Verbindung mit Ihrem Microsoft 365-Mandanten her.First, connect to your Microsoft 365 tenant.

Als nächstes Listen Sie die Lizenz Pläne für Ihren Mandanten mit diesem Befehl auf.Next, list the license plans for your tenant with this command.

Get-AzureADSubscribedSku | Select SkuPartNumber

Rufen Sie als nächstes den Anmeldenamen des Kontos ab, für das Sie eine Lizenz hinzufügen möchten, die auch als Benutzerprinzipalname (User Principal Name, UPN) bezeichnet wird.Next, get the sign-in name of the account to which you want add a license, also known as the user principal name (UPN).

Stellen Sie als nächstes sicher, dass dem Benutzerkonto ein Verwendungs Speicherort zugewiesen wurde.Next, ensure that the user account has a usage location assigned.

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

Wenn kein Verwendungs Speicherort zugewiesen ist, können Sie einen mit folgenden Befehlen zuweisen: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

Geben Sie schließlich den Benutzeranmeldenamen und den Namen des Lizenz Plans an, und führen Sie diese Befehle aus.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

Verwenden des Microsoft Azure Active Directory-Moduls für Windows PowerShellUse the Microsoft Azure Active Directory Module for Windows PowerShell

Stellen Sie zunächst eine Verbindung mit Ihrem Microsoft 365-Mandanten her.First, connect to your Microsoft 365 tenant.

Führen Get-MsolAccountSku Sie den Befehl aus, um die verfügbaren Lizenzierungs Pläne und die Anzahl der verfügbaren Lizenzen in jedem Plan in Ihrer Organisation anzuzeigen.Run the Get-MsolAccountSku command to view the available licensing plans and the number of available licenses in each plan in your organization. Die Anzahl der verfügbaren Lizenzen in jedem Plan lautet ActiveUnits - WarningUnits - ConsumedUnits.The number of available licenses in each plan is ActiveUnits - WarningUnits - ConsumedUnits. Weitere Informationen zu Lizenzierungs Plänen, Lizenzen und Diensten finden Sie unter Anzeigen von Lizenzen und Diensten mit PowerShell.For more information about licensing plans, licenses, and services, see View licenses and services with PowerShell.

Hinweis

PowerShell Core unterstützt nicht das Microsoft Azure Active Directory-Modul für Windows PowerShell und Cmdlets mit Msol im Namen.PowerShell Core does not support the Microsoft Azure Active Directory Module for Windows PowerShell module and cmdlets with Msol in their name. Um diese Cmdlets weiterhin verwenden zu können, müssen Sie sie über Windows PowerShell ausführen.To continue using these cmdlets, you must run them from Windows PowerShell.

Führen Sie diesen Befehl aus, um die nicht lizenzierten Konten in Ihrer Organisation zu suchen.To find the unlicensed accounts in your organization, run this command.

Get-MsolUser -All -UnlicensedUsersOnly

Sie können nur Benutzerkonten Lizenzen zuweisen, für die die UsageLocation -Eigenschaft auf einen gültigen ISO 3166-1-Alpha-2-Ländercode festgelegt ist.You can only assign licenses to user accounts that have the UsageLocation property set to a valid ISO 3166-1 alpha-2 country code. „US" steht zum Beispiel für die Vereinigten Staaten und „FR" für Frankreich.For example, US for the United States, and FR for France. Einige Microsoft 365-Dienste sind in bestimmten Ländern nicht verfügbar.Some Microsoft 365 services aren't available in certain countries. Weitere Informationen finden Sie unter Informationen zu Lizenzbeschränkungen.For more information, see About license restrictions.

Führen Sie diesen Befehl aus, um Konten zu finden, die keinen UsageLocation -Wert haben.To find accounts that don't have a UsageLocation value, run this command.

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

Um den UsageLocation -Wert für ein Konto festzulegen, führen Sie diesen Befehl aus.To set the UsageLocation value on an account, run this command.

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

Zum Beispiel:For example:

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

Bei Verwendung des Get-MsolUser-Cmdlets ohne den -All-Parameter werden nur die ersten 500 Konten zurückgegeben.If you use the Get-MsolUser cmdlet without using the -All parameter, only the first 500 accounts are returned.

Zuweisen von Lizenzen zu BenutzerkontenAssigning licenses to user accounts

Verwenden Sie den folgenden Befehl in PowerShell, um einem Benutzer eine Lizenz zuzuweisen.To assign a license to a user, use the following command in PowerShell.

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

In diesem Beispiel wird dem nicht lizenzierten Benutzer belindan @ litwareinc.comeine Lizenz vom litwareinc: ENTERPRISEPACK (Office 365 Enterprise E3)-Lizenzierungs Plan zugewiesen: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"

Um allen nicht lizenzierten Benutzern eine Lizenz zuzuweisen, führen Sie diesen Befehl aus.To assign a license to all unlicensed users, run this command.

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

Hinweis

Sie können einem Benutzer nicht mehrere Lizenzen aus dem gleichen Lizenzierungsplan zuweisen.You can't assign multiple licenses to a user from the same licensing plan. Wenn Sie nicht über genügend verfügbare Lizenzen verfügen, werden die Lizenzen den Benutzern in der Reihenfolge zugewiesen, in der sie von dem Get-MsolUser-Cmdlet zurückgegeben werden, bis alle Lizenzen vergeben sind.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.

In diesem Beispiel werden Lizenzen aus dem Lizenzierungs Plan litwareinc: ENTERPRISEPACK (Office 365 Enterprise E3) allen nicht lizenzierten Benutzern zugewiesen: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"

In diesem Beispiel werden die gleichen Lizenzen nicht lizenzierten Benutzern in der Vertriebsabteilung in den Vereinigten Staaten zugewiesen: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"

Migrieren eines Benutzers in ein anderes Abonnement (Lizenzplan) mit dem Azure Active Directory PowerShell für Graph-ModulMove a user to a different subscription (license plan) with the Azure Active Directory PowerShell for Graph module

Stellen Sie zunächst eine Verbindung mit Ihrem Microsoft 365-Mandanten her.First, connect to your Microsoft 365 tenant.

Rufen Sie als nächstes den Anmeldenamen des Benutzerkontos ab, für das Sie Switch-Abonnements verwenden möchten, auch bekannt als Benutzerprinzipalname (User Principal Name, 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).

Als nächstes Listen Sie die Abonnements (Lizenz Pläne) für Ihren Mandanten mit diesem Befehl auf.Next, list the subscriptions (license plans) for your tenant with this command.

Get-AzureADSubscribedSku | Select SkuPartNumber

Als nächstes Listen Sie die Abonnements auf, die das Benutzerkonto derzeit mit diesen Befehlen aufweist.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 } } }

Identifizieren Sie das Abonnement, das der Benutzer aktuell hat (das von-Abonnement) und das Abonnement, auf das der Benutzer umzieht (das Abonnement).Identify the subscription the user currently has (the FROM subscription) and the subscription to which the user is moving (the TO subscription).

Geben Sie schließlich die an-und von-Abonnement Namen (SKU-Teilenummern) an, und führen Sie diese Befehle aus.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

Sie können die Änderung des Abonnements für das Benutzerkonto mit den folgenden Befehlen überprüfen.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 } } }

Weitere ArtikelSee also

Verwalten von Benutzerkonten, Lizenzen und Gruppen mit PowerShellManage user accounts, licenses, and groups with PowerShell

Verwalten von Microsoft 365 mit PowerShellManage Microsoft 365 with PowerShell

Erste Schritte mit PowerShell für Microsoft 365Getting started with PowerShell for Microsoft 365