Tildel Microsoft 365-licenser til brugerkonti med PowerShell

Denne artikel gælder både for Microsoft 365 Enterprise og Office 365 Enterprise.

Brugerne kan ikke bruge nogen Microsoft 365-tjenester, før deres konto er blevet tildelt en licens fra en licensplan. Du kan bruge PowerShell til hurtigt at tildele licenser til konti uden licens.

Brugerkonti skal først tildeles en placering. Angivelse af en placering er en nødvendig del af oprettelsen af en ny brugerkonto i Microsoft 365 Administration.

Konti, der er synkroniseret fra din Active Directory i det lokale miljø domæneservices har ikke som standard en placering angivet. Du kan konfigurere en placering for disse konti fra:

  • Microsoft 365 Administration
  • PowerShell
  • Den Azure Portal (Brugerkonto for Active Directory-brugere>>>Profil>kontaktoplysninger>Land eller område).

Bemærk!

Få mere at vide om, hvordan du tildeler licenser til brugerkonti med Microsoft 365 Administration. Du kan finde en liste over yderligere ressourcer under Administrer brugere og grupper.

Tildel Microsoft 365-licenser til brugerkonti med Microsoft Graph PowerShell SDK

Bemærk!

Følgende script bruger Microsoft Graph Powershell. Du kan få flere oplysninger under Oversigt over Microsoft Graph PowerShell.

Du kan få oplysninger om, hvordan du bruger forskellige metoder til godkendelse Connect-Graph i et automatisk script, i artiklen Godkendelsesmodul-cmdlet'er i Microsoft Graph PowerShell.

Først skal du oprette forbindelse til din Microsoft 365-lejer.

Tildeling og fjernelse af licenser til en bruger kræver User.ReadWrite.All-tilladelsesomfanget eller en af de andre tilladelser, der er angivet på siden "Tildel licens" Microsoft Graph API-referenceside.

Området Organization.Read.All-tilladelse er påkrævet for at læse de licenser, der er tilgængelige i lejeren.

Connect-MgGraph -Scopes User.ReadWrite.All, Organization.Read.All

Kør kommandoen Get-MgSubscribedSku for at få vist de tilgængelige licensplaner og antallet af tilgængelige licenser i hver plan i din organisation. Antallet af tilgængelige licenser i hver plan er ActiveUnits - WarningUnits - ConsumedUnits. Du kan få flere oplysninger om licensplaner, licenser og tjenester under Få vist licenser og tjenester med PowerShell.

Kør denne kommando for at finde konti uden licens i din organisation.

Get-MgUser -Filter 'assignedLicenses/$count eq 0' -ConsistencyLevel eventual -CountVariable unlicensedUserCount -All

Hvis du vil finde synkroniserede brugere uden licens i din organisation, skal du køre denne kommando.

Get-MgUser -Filter 'assignedLicenses/$count eq 0 and OnPremisesSyncEnabled eq true' -ConsistencyLevel eventual -CountVariable unlicensedUserCount -All -Select UserPrincipalName

Du kan kun tildele licenser til brugerkonti, hvor egenskaben UsageLocation er angivet til en gyldig ISO 3166-1 alpha-2-landekode. Det kan f.eks. være USA for USA og Frankrig. Nogle Microsoft 365-tjenester er ikke tilgængelige i visse lande/områder. Du kan få flere oplysninger under Om licensbegrænsninger.

Kør denne kommando for at finde konti, der ikke har en UsageLocation-værdi .

Get-MgUser -Select Id,DisplayName,Mail,UserPrincipalName,UsageLocation,UserType | where { $_.UsageLocation -eq $null -and $_.UserType -eq 'Member' }

Kør denne kommando for at angive værdien UsageLocation for en konto.

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

Update-MgUser -UserId $userUPN -UsageLocation $userLoc

Det kan f.eks. være:

Update-MgUser -UserId "belindan@litwareinc.com" -UsageLocation US

Hvis du bruger Cmdlet'en Get-MgUser uden at bruge parameteren -All , returneres kun de første 100 konti.

Tildeling af licenser til brugerkonti

Hvis du vil tildele en licens til en bruger, skal du bruge følgende kommando i PowerShell.

Set-MgUserLicense -UserId $userUPN -AddLicenses @{SkuId = "<SkuId>"} -RemoveLicenses @()

I dette eksempel tildeles en licens fra SPE_E5 (Microsoft 365 E5)-licensplanen til den brugerbelindan@litwareinc.com, der ikke har licens:

$e5Sku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'SPE_E5'
Set-MgUserLicense -UserId "belindan@litwareinc.com" -AddLicenses @{SkuId = $e5Sku.SkuId} -RemoveLicenses @()

I dette eksempel tildeles SPE_E5 (Microsoft 365 E5) og EMSPREMIUM (ENTERPRISE MOBILITY + SECURITY E5) til brugeren belindan@litwareinc.com:

$e5Sku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'SPE_E5'
$e5EmsSku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'EMSPREMIUM'
$addLicenses = @(
    @{SkuId = $e5Sku.SkuId},
    @{SkuId = $e5EmsSku.SkuId}
)

Set-MgUserLicense -UserId "belinda@litwareinc.com" -AddLicenses $addLicenses -RemoveLicenses @()

I dette eksempel tildeles SPE_E5 (Microsoft 365 E5) med tjenesterne MICROSOFTBOOKINGS (Microsoft Bookings) og LOCKBOX_ENTERPRISE (Customer Lockbox) slået fra:

$e5Sku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'SPE_E5'
$disabledPlans = $e5Sku.ServicePlans | `
    Where ServicePlanName -in ("LOCKBOX_ENTERPRISE", "MICROSOFTBOOKINGS") | `
    Select -ExpandProperty ServicePlanId

$addLicenses = @(
    @{
        SkuId = $e5Sku.SkuId
        DisabledPlans = $disabledPlans
    }
)

Set-MgUserLicense -UserId "belinda@litwareinc.com" -AddLicenses $addLicenses -RemoveLicenses @()

I dette eksempel opdateres en bruger med SPE_E5 (Microsoft 365 E5) og deaktiver Sway- og formulartjenesteplaner, mens brugerens eksisterende deaktiverede planer er i den aktuelle tilstand:

$userLicense = Get-MgUserLicenseDetail -UserId "belinda@litwareinc.com"
$userDisabledPlans = $userLicense.ServicePlans | `
    Where ProvisioningStatus -eq "Disabled" | `
    Select -ExpandProperty ServicePlanId

$e5Sku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'SPE_E5'
$newDisabledPlans = $e5Sku.ServicePlans | `
    Where ServicePlanName -in ("SWAY", "FORMS_PLAN_E5") | `
    Select -ExpandProperty ServicePlanId

$disabledPlans = ($userDisabledPlans + $newDisabledPlans) | Select -Unique

$addLicenses = @(
    @{
        SkuId = $e5Sku.SkuId
        DisabledPlans = $disabledPlans
    }
)

Set-MgUserLicense -UserId "belinda@litwareinc.com" -AddLicenses $addLicenses -RemoveLicenses @()

I dette eksempel opdateres en bruger med SPE_E5 (Microsoft 365 E5) og deaktiver Sway- og formulartjenesteplaner, samtidig med at brugerens eksisterende deaktiverede planer i alle andre abonnementer er i den aktuelle tilstand:

$userLicense = Get-MgUserLicenseDetail -UserId belinda@litwareinc.com

$userDisabledPlans = $userLicense.ServicePlans | Where-Object ProvisioningStatus -eq "Disabled" | Select -ExpandProperty ServicePlanId

$e5Sku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'SPE_E5'

$newDisabledPlans = $e5Sku.ServicePlans | Where ServicePlanName -in ("SWAY", "FORMS_PLAN_E5") | Select -ExpandProperty ServicePlanId

$disabledPlans = ($userDisabledPlans + $newDisabledPlans) | Select -Unique

$result=@()
$allPlans = $e5Sku.ServicePlans | Select -ExpandProperty ServicePlanId

foreach($disabledPlan in $disabledPlans)
{
    foreach($allPlan in $allPlans)
    {
        if($disabledPlan -eq $allPlan)
        {
            $property = @{
                Disabled = $disabledPlan
            }
        }
     }
     $result += New-Object psobject -Property $property
}


$finalDisabled = $result | Select-Object -ExpandProperty Disabled


$addLicenses = @(
    @{
        SkuId = $e5Sku.SkuId
        DisabledPlans = $finalDisabled
    }
)


Set-MgUserLicense -UserId belinda@litwareinc.com -AddLicenses $addLicenses -RemoveLicenses @()

Tildel licenser til en bruger ved at kopiere licenstildelingen fra en anden bruger

I dette eksempel tildeles jamesp@litwareinc.com med den samme licensplan, der er anvendt på belindan@litwareinc.com:

$mgUser = Get-MgUser -UserId "belindan@litwareinc.com" -Property AssignedLicenses
Set-MgUserLicense -UserId "jamesp@litwareinc.com" -AddLicenses $mgUser.AssignedLicenses -RemoveLicenses @()

Flyt en bruger til et andet abonnement (licensplan)

I dette eksempel opgraderes en bruger fra SPE_E3 (Microsoft 365 E3)-licensplanen til SPE_E5 (Microsoft 365 E5)-licensplanen:

$e3Sku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'SPE_E3'
$e5Sku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'SPE_E5'

# Unassign E3
Set-MgUserLicense -UserId "belindan@litwareinc.com" -AddLicenses @{} -RemoveLicenses @($e3Sku.SkuId)
# Assign E5
Set-MgUserLicense -UserId "belindan@litwareinc.com" -AddLicenses @{SkuId = $e5Sku.SkuId} -RemoveLicenses @()

Du kan bekræfte ændringen i abonnementet for brugerkontoen med denne kommando.

Get-MgUserLicenseDetail -UserId "belindan@litwareinc.com"

Se også

Administrer Microsoft 365 med PowerShell

Administrer Microsoft 365 med PowerShell

Kom i gang med Microsoft Graph PowerShell SDK

Brug Microsoft Graph-brugeren: assignLicense og AbonnerSku-API'er