Microsoft 365 -käyttöoikeuksien määrittäminen käyttäjätileille PowerShellin avulla

Tämä artikkeli koskee sekä Microsoft 365 Enterprise että Office 365 Enterprise.

Käyttäjät eivät voi käyttää Microsoft 365 -palveluita, ennen kuin heidän tililleen on määritetty käyttöoikeussopimus. PowerShellin avulla voit määrittää käyttöoikeuksia nopeasti tileille, joille ei ole käyttöoikeutta.

Käyttäjätileille on ensin määritettävä sijainti. Sijainnin määrittäminen on pakollinen osa uuden käyttäjätilin luomista Microsoft 365 -hallintakeskus.

Paikallinen Active Directory toimialuepalvelut synkronoiduilla tileillä ei ole oletusarvoisesti määritettyä sijaintia. Voit määrittää näiden tilien sijainnin seuraavista lähteistä:

  • Microsoft 365 -hallintakeskus
  • PowerShell
  • Azure-portaali (Active Directory ->käyttäjätilin> käyttäjätilin >profiiliyhteystietojen>>maa tai alue).

Huomautus

Lue, miten voit määrittää käyttöoikeuksia käyttäjätileille Microsoft 365 -hallintakeskus avulla. Lisätietoja lisäresursseista on kohdassa Käyttäjien ja ryhmien hallinta.

Microsoft 365 -käyttöoikeuksien määrittäminen käyttäjätileille Microsoft Graph PowerShell SDK:n avulla

Huomautus

Seuraavassa komentosarjassa käytetään Microsoft Graph Powershelliä. Lisätietoja on Microsoft Graph PowerShellin yleiskatsauksessa.

Lisätietoja siitä, miten voit todentaa Connect-Graph valvomattoman komentosarjan eri menetelmien avulla, on artikkelissa Todentamismoduulin cmdlet-komennot Microsoft Graph PowerShellissä.

Muodosta ensin yhteys Microsoft 365 -vuokraajaan.

Käyttöoikeuksien määrittäminen ja poistaminen käyttäjälle edellyttää User.ReadWrite.All-käyttöoikeusaluetta tai jotakin muuta käyttöoikeutta, jotka on lueteltu Microsoft Graph -ohjelmointirajapinnan viittaussivun Määritä käyttöoikeus -kohdassa.

Organization.Read.All-käyttöoikeusalue vaaditaan vuokraajassa käytettävissä olevien käyttöoikeuksien lukemiseen.

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

Suorita komento, Get-MgSubscribedSku jos haluat tarkastella käytettävissä olevia käyttöoikeussuunnitelmia ja käytettävissä olevien käyttöoikeuksien määrää kussakin organisaatiosi palvelupaketissa. Kunkin palvelupaketin käytettävissä olevien käyttöoikeuksien määrä on ActiveUnitsWarningUnits - - ConsumEdUnits. Lisätietoja käyttöoikeussopimuksista, käyttöoikeuksista ja palveluista on artikkelissa Käyttöoikeuksien ja palveluiden tarkasteleminen PowerShellin avulla.

Jos haluat etsiä organisaatiossasi tilit, joiden käyttöoikeutta ei ole, suorita tämä komento.

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

Jos haluat etsiä organisaatiosi käyttöoikeudeton synkronoitu käyttäjä, suorita tämä komento.

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

Voit määrittää käyttöoikeuksia vain käyttäjätileille, joiden UsageLocation-ominaisuudeksi on määritetty kelvollinen maakoodi ISO 3166-1 alpha-2. Esimerkiksi Yhdysvaltojen Yhdysvallat ja FR Ranskassa. Jotkin Microsoft 365 -palvelut eivät ole käytettävissä tietyissä maissa tai tietyillä alueilla. Lisätietoja on artikkelissa Tietoja käyttöoikeuksien rajoituksista.

Jos haluat etsiä tilejä, joilla ei ole UsageLocation-arvoa , suorita tämä komento.

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

Jos haluat määrittää tilin UsageLocation-arvon , suorita tämä komento.

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

Update-MgUser -UserId $userUPN -UsageLocation $userLoc

Esimerkki:

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

Jos käytät Get-MgUser cmdlet-komentoa käyttämättä -All-parametria , vain ensimmäiset 100 tiliä palautetaan.

Käyttöoikeuksien määrittäminen käyttäjätileille

Jos haluat määrittää käyttöoikeuden käyttäjälle, käytä seuraavaa komentoa PowerShellissä.

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

Tässä esimerkissä SPE_E5 (Microsoft 365 E5) käyttöoikeussuunnitelmasta määritetään käyttöoikeussopimus käyttäjällebelindan@litwareinc.com, jolla ei ole käyttöoikeutta:

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

Tässä esimerkissä käyttäjällebelindan@litwareinc.commääritetään SPE_E5 (Microsoft 365 E5) ja EMSPREMIUM (ENTERPRISE MOBILITY + SECURITY E5):

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

Tässä esimerkissä SPE_E5 (Microsoft 365 E5) määritetään, kun MICROSOFTBOOKINGS (Microsoft Bookings) ja LOCKBOX_ENTERPRISE (Asiakkaan Lockbox) palvelut on poistettu käytöstä:

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

Tässä esimerkissä käyttäjälle päivitetään SPE_E5 (Microsoft 365 E5) ja Sway- ja Forms-palvelupaketit poistetaan käytöstä poistumatta käyttäjän nykyisistä käytöstä poistetuista palvelupaketteista nykyisessä tilassaan:

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

Tässä esimerkissä käyttäjälle päivitetään SPE_E5 (Microsoft 365 E5) ja poistetaan käytöstä Sway- ja Forms-palvelusopimukset samalla, kun käyttäjän aiemmin luodut käytöstä poistetut palvelupaketit poistuvat kaikista muista tilauksista nykyisessä tilassaan:

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

Käyttöoikeuksien määrittäminen käyttäjälle kopioimalla käyttöoikeusmääritys toiselta käyttäjältä

Tässä esimerkissä jamesp@litwareinc.com määritetään sama käyttöoikeussopimus, jota on käytetty kohteeseen belindan@litwareinc.com:

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

Siirrä käyttäjä toiseen tilaukseen (käyttöoikeussopimus)

Tässä esimerkissä käyttäjä päivitetään SPE_E3 (Microsoft 365 E3) -käyttöoikeussuunnitelmasta SPE_E5 (Microsoft 365 E5) -käyttöoikeussuunnitelmaan:

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

Voit tarkistaa käyttäjätilin tilauksen muutoksen tällä komennolla.

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

Tutustu myös seuraaviin ohjeartikkeleihin:

Microsoft 365:n hallinta PowerShellin avulla

Microsoft 365:n hallinta PowerShellin avulla

Microsoft Graph PowerShell SDK:n käytön aloittaminen

Käytä Microsoft Graph -käyttäjää: assignLicense ja subscribedSku-ohjelmointirajapinnat