Microsoft 365-licencek hozzárendelése felhasználói fiókokhoz a PowerShell-lel

Ez a cikk Microsoft 365 Nagyvállalati verzió és Office 365 Nagyvállalati verzió egyaránt vonatkozik.

A felhasználók csak akkor használhatnak Microsoft 365-szolgáltatásokat, ha a fiókjukhoz licenccsomagból rendeltek licencet. A PowerShell használatával gyorsan hozzárendelhet licenceket nem licencelt fiókokhoz.

A felhasználói fiókokat először helyhez kell rendelni. A hely megadása kötelező része egy új felhasználói fiók létrehozásának a Microsoft 365 Felügyeleti központ.

A helyi Active Directory Tartományi szolgáltatások szinkronizált fiókokhoz alapértelmezés szerint nincs megadva hely. A fiókok helyét a következő helyeken konfigurálhatja:

  • A Microsoft 365 Felügyeleti központ
  • PowerShell-
  • A Azure Portal (ActiveDirectory-felhasználók> felhasználói fiók >profiljának>kapcsolattartási>adatai>Ország vagy régió).

Megjegyzés:

Megtudhatja, hogyan rendelhet licenceket felhasználói fiókokhoz a Microsoft 365 Felügyeleti központ. További erőforrások listáját a Felhasználók és csoportok kezelése című témakörben találja.

Microsoft 365-licencek hozzárendelése felhasználói fiókokhoz a Microsoft Graph PowerShell SDK-val

Megjegyzés:

A következő szkript a Microsoft Graph PowerShellt használja. További információ: A Microsoft Graph PowerShell áttekintése.

A különböző módszerek felügyelet nélküli szkriptekben történő hitelesítésével Connect-Graph kapcsolatos információkért tekintse meg a Hitelesítési modul parancsmagjai a Microsoft Graph PowerShellben című cikket.

Először csatlakozzon a Microsoft 365-bérlőhöz.

A felhasználók licenceinek hozzárendeléséhez és eltávolításához a User.ReadWrite.All engedélyhatókörre vagy a Microsoft Graph API hivatkozási lapján felsorolt egyéb engedélyek egyikére van szükség.

A bérlőben elérhető licencek olvasásához az Organization.Read.All engedélyhatókör szükséges.

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

Futtassa az Get-MgSubscribedSku parancsot az elérhető licenccsomagok és a szervezeten belüli egyes csomagokban elérhető licencek számának megtekintéséhez. Az egyes csomagokban elérhető licencek száma ActiveUnits - WarningUnits - ConsumedUnits. A licenccsomagokkal, licencekkel és szolgáltatásokkal kapcsolatos további információkért lásd: Licencek és szolgáltatások megtekintése a PowerShell-lel.

A szervezet nem licencelt fiókjainak megkereséséhez futtassa ezt a parancsot.

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

A szervezet nem licencelt szinkronizált felhasználóinak megkereséséhez futtassa ezt a parancsot.

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

Csak olyan felhasználói fiókokhoz rendelhet licenceket, amelyek UsageLocation tulajdonsága érvényes ISO 3166-1 alpha-2 országkódra van beállítva. Például az EGYESÜLT ÁLLAMOK a Egyesült Államok, az FR franciaországi. Egyes Microsoft 365-szolgáltatások bizonyos országokban/régiókban nem érhetők el. További információ: Tudnivalók a licenckorlátozásokról.

A UsageLocation értékkel nem rendelkező fiókok megkereséséhez futtassa ezt a parancsot.

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

A UsageLocation érték fiókon való beállításához futtassa ezt a parancsot.

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

Update-MgUser -UserId $userUPN -UsageLocation $userLoc

Például:

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

Ha a Get-MgUser parancsmagot az -All paraméter használata nélkül használja, a rendszer csak az első 100 fiókot adja vissza.

Licencek hozzárendelése felhasználói fiókokhoz

Ha licencet szeretne hozzárendelni egy felhasználóhoz, használja a következő parancsot a PowerShellben.

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

Ez a példa hozzárendel egy licencet a SPE_E5 (Microsoft 365 E5) licenccsomagból a nem licencelt felhasználóhozbelindan@litwareinc.com:

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

Ez a példa SPE_E5 (Microsoft 365 E5) és EMSPREMIUM (ENTERPRISE MOBILITY + SECURITY E5) hozzárendelése a felhasználóhozbelindan@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 @()

Ez a példa SPE_E5 (Microsoft 365 E5) rendel hozzá a MICROSOFTBOOKINGS (Microsoft Bookings) és LOCKBOX_ENTERPRISE (Ügyfélszéf) szolgáltatások kikapcsolásával:

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

Ez a példa frissíti a felhasználót a SPE_E5 (Microsoft 365 E5), és kikapcsolja a Sway és forms szolgáltatáscsomagokat, miközben a felhasználó meglévő letiltott csomagjait a jelenlegi állapotában hagyja:

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

Ez a példa frissíti a felhasználót a SPE_E5 (Microsoft 365 E5), és kikapcsolja a Sway és az Forms szolgáltatáscsomagokat, miközben a felhasználó meglévő letiltott csomagjait az összes többi előfizetésben a jelenlegi állapotában hagyja:

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

Licencek hozzárendelése egy felhasználóhoz a licenc-hozzárendelés másik felhasználóról történő másolásával

Ez a példa ugyanazt a licenccsomagot rendeli jamesp@litwareinc.com hozzá, mint amelyet a következőre alkalmaztak belindan@litwareinc.com:

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

Felhasználó áthelyezése másik előfizetésbe (licenccsomag)

Ez a példa frissíti a felhasználót a SPE_E3 (Microsoft 365 E3) licenccsomagról a SPE_E5 (Microsoft 365 E5) licenccsomagra:

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

Ezzel a paranccsal ellenőrizheti a felhasználói fiók előfizetésében történt változást.

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

Lásd még

A Microsoft 365 kezelése PowerShell használatával

A Microsoft 365 kezelése PowerShell használatával

A Microsoft Graph PowerShell SDK használatának első lépései

A Microsoft Graph-felhasználó használata: assignLicense és subscribedSku API-k