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

Tämä artikkeli koskee sekä Microsoft 365 Enterprisea 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 -hallintakeskuksessa.

Paikallisista Active Directory -toimialuepalveluista 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ät > käyttäjätiliä > profiilin > yhteystietojen > maa tai alue).

Huomautus

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

Microsoft Graph PowerShell SDK:n käyttäminen

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 Määritä käyttöoikeus -Graph-ohjelmointirajapinnan viitesivulla.

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

Connect-Graph -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 ActiveUnits****WarningUnits - - 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

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 Yhdysvallat ja FR Ranskassa. Jotkin Microsoft 365 -palvelut eivät ole käytettävissä tietyissä maissa. 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

Esimerkiksi:

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ä määritetään käyttöoikeus SPE_E5 (Microsoft 365 E5) -käyttöoikeuspaketista käyttäjälle, jolla ei ole käyttöoikeutta, belindan-litwareinc.com@:

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

Tässä esimerkissä SPE_E5 (Microsoft 365 E5) ja EMSPREMIUM (ENTERPRISE MOBILITY + SECURITY E5) määritetään käyttäjän 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 @()

Tässä esimerkissä määritetään SPE_E5 (Microsoft 365 E5) microsoftBOOKINGS (Microsoft Bookings ) ja LOCKBOX_ENTERPRISE (Customer Lockbox) -palveluiden ollessa 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@fdoau.onmicrosoft.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.onmicrosoft.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ä määritetään jakop-litwareinc.com@, joilla on sama käyttöoikeussuunnitelma kuin belindan-litwareinc.com@:

$mgUser = Get-MgUser -UserId "belindan@litwareinc.com"
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öoikeuspaketista 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"

Azure Active Directoryn PowerShell for Graph -moduulin käyttäminen

Huomautus

Set-AzureADUserLicense cmdlet -komento on tarkoitus poistaa käytöstä. Siirrä komentosarjat Microsoft Graph SDK:n Set-MgUserLicense cmdlet-komentoon edellä kuvatulla tavalla. Lisätietoja on kohdassa Sovellusten siirtäminen käyttöoikeuksien hallinnan ohjelmointirajapintoja varten Microsoft Graphista.

Muodosta ensin yhteys Microsoft 365 -vuokraajaan.

Luettele seuraavaksi vuokraajasi käyttöoikeussopimukset tällä komennolla.

Get-AzureADSubscribedSku | Select SkuPartNumber

Hae seuraavaksi sen tilin kirjautumisnimi, johon haluat lisätä käyttöoikeuden. Tätä kutsutaan myös täydellisen käyttäjätunnuksen (UPN) nimeksi.

Varmista seuraavaksi, että käyttäjätilille on määritetty käyttösijainti.

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

Jos käyttösijaintia ei ole määritetty, voit määrittää sellaisen seuraavilla komennoilla:

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

Määritä lopuksi käyttäjän kirjautumisnimi ja käyttöoikeussopimuksen nimi ja suorita nämä komennot.

$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

Windows PowerShellin Microsoft Azure Active Directory -moduulin käyttäminen

Huomautus

Set-MsolUserLicense ja New-MsolUser (-LicenseAssignment) cmdlet-komennot on ajoitettu poistumaan käytöstä. Siirrä komentosarjat Microsoft Graph SDK:n Set-MgUserLicense cmdlet-komentoon edellä kuvatulla tavalla. Lisätietoja on kohdassa Sovellusten siirtäminen käyttöoikeuksien hallinnan ohjelmointirajapintoja varten Microsoft Graphista.

Muodosta ensin yhteys Microsoft 365 -vuokraajaan.

Suorita komento, Get-MsolAccountSku 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 ActiveUnits****WarningUnits - - ConsumEdUnits. Lisätietoja käyttöoikeussopimuksista, käyttöoikeuksista ja palveluista on artikkelissa Käyttöoikeuksien ja palveluiden tarkasteleminen PowerShellin avulla.

Huomautus

PowerShell Core ei tue Microsoft Azure Active Directory Module for Windows PowerShell -moduulia ja cmdlet-komentoja, joiden nimessä on Msol . Jos haluat jatkaa cmdlet-komentojen käyttöä, sinun on suoritettava ne Windows PowerShellistä.

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

Get-MsolUser -All -UnlicensedUsersOnly

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 Yhdysvallat ja FR Ranskassa. Jotkin Microsoft 365 -palvelut eivät ole käytettävissä tietyissä maissa. Lisätietoja on artikkelissa Tietoja käyttöoikeuksien rajoituksista.

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

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

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

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

Esimerkiksi:

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

Jos käytät Get-MsolUser cmdlet-komentoa käyttämättä -All-parametria , vain ensimmäiset 500 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-MsolUserLicense -UserPrincipalName "<Account>" -AddLicenses "<AccountSkuId>"

Tässä esimerkissä litwareinc:ENTERPRISEPACK (Office 365 Enterprise E3) -käyttöoikeussuunnitelmasta määritetään käyttöoikeussopimus käyttäjälle, jolla ei ole käyttöoikeutta , belindan-litwareinc.com@:

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

Jos haluat määrittää käyttöoikeuden kaikille käyttäjille, joille ei ole käyttöoikeutta, suorita tämä komento.

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

Huomautus

Käyttäjälle ei voi määrittää useita käyttöoikeuksia samasta käyttöoikeussuunnitelmasta. Jos sinulla ei ole riittävästi käytettävissä olevia käyttöoikeuksia, käyttöoikeudet määritetään käyttäjille siinä järjestyksessä, jossa Get-MsolUser-cmdlet-komento palauttaa ne, kunnes käytettävissä olevat käyttöoikeudet loppuvat.

Tässä esimerkissä määritetään litwareinc:ENTERPRISEPACK (Office 365 Enterprise E3) -käyttöoikeussopimuksen käyttöoikeudet kaikille käyttäjille, joille ei ole käyttöoikeutta:

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

Tässä esimerkissä nämä samat käyttöoikeudet määritetään Yhdysvaltojen myyntiosastolla oleville käyttäjille, joilla ei ole käyttöoikeutta:

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

Käyttäjän siirtäminen toiseen tilaukseen (käyttöoikeussopimus) Azure Active Directory PowerShell for Graph -moduulin avulla

Muodosta ensin yhteys Microsoft 365 -vuokraajaan.

Hae seuraavaksi sen käyttäjätilin kirjautumisnimi, jonka tilauksen haluat vaihtaa. Tätä kutsutaan myös täydellisen käyttäjätunnuksen (UPN) nimeksi.

Luettele seuraavaksi vuokraajasi tilaukset (käyttöoikeussopimukset) tällä komennolla.

Get-AzureADSubscribedSku | Select SkuPartNumber

Luettele seuraavaksi tilaukset, jotka käyttäjätilillä on tällä hetkellä näiden komentojen kanssa.

$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 } } }

Määritä tilaus, joka käyttäjällä on tällä hetkellä (FROM-tilaus) ja tilaus, johon käyttäjä siirtää (TO-tilaus).

Määritä lopuksi TO- ja FROM-tilausten nimet (SKU-osanumerot) ja suorita nämä komennot.

$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
$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

Voit tarkistaa käyttäjätilin tilauksen muutoksen näillä komennoilla.

$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 } } }

Tutustu myös seuraaviin ohjeartikkeleihin:

Käyttäjätilien, käyttöoikeuksien ja ryhmien hallinta PowerShellin avulla

Microsoft 365:n hallinta PowerShellin avulla

PowerShellin käytön aloittaminen Microsoft 365:lle