Tilordne Microsoft 365-lisenser til brukerkontoer med PowerShell

Denne artikkelen gjelder for både Microsoft 365 Enterprise og Office 365 Enterprise.

Brukere kan ikke bruke microsoft 365-tjenester før kontoen er tilordnet en lisens fra en lisensplan. Du kan bruke PowerShell til raskt å tilordne lisenser til ulisensierte kontoer.

Brukerkontoer må først tilordnes en plassering. Å angi en plassering er en nødvendig del av opprettingen av en ny brukerkonto i Administrasjonssenter for Microsoft 365.

Kontoer som er synkronisert fra lokal Active Directory Domain Services har som standard ikke angitt en plassering. Du kan konfigurere en plassering for disse kontoene fra:

  • Administrasjonssenter for Microsoft 365
  • PowerShell
  • Den Azure Portal (Active Directory-brukere>> brukerkonto >profil>kontaktinformasjon>land eller område).

Obs!

Lær hvordan du tilordner lisenser til brukerkontoer med Administrasjonssenter for Microsoft 365. Hvis du vil ha en liste over flere ressurser, kan du se Administrere brukere og grupper.

Tilordne Microsoft 365-lisenser til brukerkontoer med Microsoft Graph PowerShell SDK

Obs!

Følgende skript bruker Microsoft Graph Powershell. Hvis du vil ha mer informasjon, kan du se Oversikt over Microsoft Graph PowerShell.

Hvis du vil ha informasjon om hvordan du bruker ulike metoder til å godkjenne Connect-Graph i et uovervåket skript, kan du se artikkelen Cmdleter for godkjenningsmodul i Microsoft Graph PowerShell.

Først kobler du til Microsoft 365-leieren.

Tilordning og fjerning av lisenser for en bruker krever user.ReadWrite.All tillatelsesomfang eller en av de andre tillatelsene som er oppført på referansesiden tilordne lisens for Microsoft Graph API.

Tillatelsesomfanget Organization.Read.All kreves for å lese lisensene som er tilgjengelige i leieren.

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

Get-MgSubscribedSku Kjør kommandoen for å vise tilgjengelige lisensplaner og antall tilgjengelige lisenser i hver plan i organisasjonen. Antall tilgjengelige lisenser i hver plan er ActiveUnits - WarningUnits - ConsumedUnits. Hvis du vil ha mer informasjon om lisensieringsplaner, lisenser og tjenester, kan du se Vis lisenser og tjenester med PowerShell.

Hvis du vil finne de ulisensierte kontoene i organisasjonen, kjører du denne kommandoen.

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

Hvis du vil finne de ulisensierte synkroniserte brukerne i organisasjonen, kjører du denne kommandoen.

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

Du kan bare tilordne lisenser til brukerkontoer som har UsageLocation-egenskapen satt til en gyldig ISO 3166-1 alfa-2-landskode. For eksempel USA for USA og FR for Frankrike. Enkelte Microsoft 365-tjenester er ikke tilgjengelige i enkelte land/områder. Hvis du vil ha mer informasjon, kan du se Om lisensbegrensninger.

Hvis du vil finne kontoer som ikke har en UsageLocation-verdi , kjører du denne kommandoen.

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

Hvis du vil angi UsageLocation-verdien for en konto, kjører du denne kommandoen.

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

Update-MgUser -UserId $userUPN -UsageLocation $userLoc

Eksempel:

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

Hvis du bruker Get-MgUser-cmdleten uten å bruke -All-parameteren , returneres bare de første 100 kontoene.

Tilordne lisenser til brukerkontoer

Hvis du vil tilordne en lisens til en bruker, bruker du følgende kommando i PowerShell.

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

Dette eksemplet tilordner en lisens fra SPE_E5 (Microsoft 365 E5) lisensieringsplan til den ulisensierte brukerenbelindan@litwareinc.com:

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

Dette eksemplet tilordner SPE_E5 (Microsoft 365 E5) og EMSPREMIUM (ENTERPRISE MOBILITY + SECURITY E5) til brukerenbelindan@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 @()

Dette eksemplet tilordner SPE_E5 (Microsoft 365 E5) med MICROSOFTBOOKINGS -tjenestene (Microsoft Bookings) og LOCKBOX_ENTERPRISE (Customer Lockbox) slått av:

$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 @()

Dette eksemplet oppdaterer en bruker med SPE_E5 (Microsoft 365 E5) og deaktiverer tjenesteabonnementene Sway og Forms mens brukeren forlater brukerens eksisterende deaktiverte planer i gjeldende 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 @()

Dette eksemplet oppdaterer en bruker med SPE_E5 (Microsoft 365 E5) og deaktiverer tjenesteabonnementene Sway og Forms mens brukeren forlater brukerens eksisterende deaktiverte abonnementer i alle andre abonnementer i gjeldende 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 @()

Tilordne lisenser til en bruker ved å kopiere lisenstilordningen fra en annen bruker

Dette eksemplet tilordnes jamesp@litwareinc.com med samme lisensieringsplan som er brukt på belindan@litwareinc.com:

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

Flytte en bruker til et annet abonnement (lisensplan)

Dette eksemplet oppgraderer en bruker fra SPE_E3 (Microsoft 365 E3) lisensieringsplan til SPE_E5 (Microsoft 365 E5) lisensieringsplan:

$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 kontrollere endringen i abonnementet for brukerkontoen med denne kommandoen.

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

Se også

Administrere Microsoft 365 med PowerShell

Administrere Microsoft 365 med PowerShell

Kom i gang med Microsoft Graph PowerShell SDK

Bruk Microsoft Graph-brukeren: assignLicense og subscribedSku API-er