Přiřazení licencí Microsoft 365 k uživatelským účtům pomocí PowerShellu
Tento článek se týká Microsoft 365 Enterprise i Office 365 Enterprise.
Uživatelé nemůžou používat žádné služby Microsoftu 365, dokud jim účet nepřiřadí licenci z licenčního plánu. Pomocí PowerShellu můžete rychle přiřadit licence k nelicencovaným účtům.
Uživatelské účty musí být nejprve přiřazeny umístění. Zadání umístění je povinnou součástí vytváření nového uživatelského účtu v Centrum pro správu Microsoftu 365.
Účty synchronizované z vašeho místní Active Directory Doménové služby ve výchozím nastavení nemají zadané umístění. Umístění pro tyto účty můžete nakonfigurovat z:
- Centrum pro správu Microsoftu 365
- PowerShell
- The Azure Portal (Active Directory>Users> User Account >Profile>Contact info>Country or region).
Poznámka
Naučte se přiřazovat licence k uživatelským účtům pomocí Centrum pro správu Microsoftu 365. Seznam dalších prostředků najdete v tématu Správa uživatelů a skupin.
Přiřazení licencí Microsoft 365 uživatelským účtům pomocí sady Microsoft Graph PowerShell SDK
Poznámka
Následující skript používá Microsoft Graph PowerShell. Další informace najdete v tématu Přehled Prostředí Microsoft Graph PowerShell.
Informace o použití různých metod ověřování Connect-Graph
v bezobslužném skriptu najdete v článku Rutiny modulu ověřování v Prostředí Microsoft Graph PowerShell.
Nejprve se připojte ke svému tenantovi Microsoftu 365.
Přiřazení a odebrání licencí pro uživatele vyžaduje obor oprávnění User.ReadWrite.All nebo jedno z dalších oprávnění uvedených na stránce s referenčními informacemi o přiřazení licence Microsoftu Graph API.
Ke čtení licencí dostupných v tenantovi se vyžaduje obor oprávnění Organization.Read.All.
Connect-MgGraph -Scopes User.ReadWrite.All, Organization.Read.All
Spuštěním Get-MgSubscribedSku
příkazu zobrazte dostupné licenční plány a počet dostupných licencí v jednotlivých plánech ve vaší organizaci. Počet dostupných licencí v každém plánu je ActiveUnits - WarningUnits - ConsumedUnits. Další informace o licenčních plánech, licencích a službách najdete v tématu Zobrazení licencí a služeb pomocí PowerShellu.
Pokud chcete najít nelicencované účty ve vaší organizaci, spusťte tento příkaz.
Get-MgUser -Filter 'assignedLicenses/$count eq 0' -ConsistencyLevel eventual -CountVariable unlicensedUserCount -All
Pokud chcete najít nelicencované synchronizované uživatele ve vaší organizaci, spusťte tento příkaz.
Get-MgUser -Filter 'assignedLicenses/$count eq 0 and OnPremisesSyncEnabled eq true' -ConsistencyLevel eventual -CountVariable unlicensedUserCount -All -Select UserPrincipalName
Licence můžete přiřadit jenom uživatelským účtům, které mají vlastnost UsageLocation nastavenou na platný kód země ISO 3166-1 alfa-2. Například USA pro USA a FR pro Francii. Některé služby Microsoft 365 nejsou v určitých zemích nebo oblastech dostupné. Další informace najdete v tématu Informace o licenčních omezeních.
Pokud chcete najít účty, které nemají hodnotu UsageLocation , spusťte tento příkaz.
Get-MgUser -Select Id,DisplayName,Mail,UserPrincipalName,UsageLocation,UserType | where { $_.UsageLocation -eq $null -and $_.UserType -eq 'Member' }
Pokud chcete u účtu nastavit hodnotu UsageLocation , spusťte tento příkaz.
$userUPN="<user sign-in name (UPN)>"
$userLoc="<ISO 3166-1 alpha-2 country code>"
Update-MgUser -UserId $userUPN -UsageLocation $userLoc
Příklady:
Update-MgUser -UserId "belindan@litwareinc.com" -UsageLocation US
Pokud použijete rutinu Get-MgUser bez použití parametru -All , vrátí se pouze prvních 100 účtů.
Přiřazování licencí k uživatelským účtům
Pokud chcete uživateli přiřadit licenci, použijte v PowerShellu následující příkaz.
Set-MgUserLicense -UserId $userUPN -AddLicenses @{SkuId = "<SkuId>"} -RemoveLicenses @()
Tento příklad přiřadí licenci z licenčního plánu SPE_E5 (Microsoft 365 E5) uživateli belindan@litwareinc.combez licence:
$e5Sku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'SPE_E5'
Set-MgUserLicense -UserId "belindan@litwareinc.com" -AddLicenses @{SkuId = $e5Sku.SkuId} -RemoveLicenses @()
Tento příklad přiřadí uživatelibelindan@litwareinc.comSPE_E5 (Microsoft 365 E5) a 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 @()
Tento příklad přiřadí SPE_E5 (Microsoft 365 E5) s vypnutými službami MICROSOFTBOOKINGS (Microsoft Bookings) a LOCKBOX_ENTERPRISE (Customer Lockbox):
$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 @()
Tento příklad aktualizuje uživatele s SPE_E5 (Microsoft 365 E5) a vypne plány služby Sway a Forms, přičemž stávající zakázané plány uživatele zůstanou v aktuálním stavu:
$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 @()
Tento příklad aktualizuje uživatele pomocí SPE_E5 (Microsoft 365 E5) a vypne plány služeb Sway a Forms, přičemž stávající zakázané plány uživatele ponechá ve všech ostatních předplatných v aktuálním stavu:
$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 @()
Přiřazení licencí uživateli zkopírováním přiřazení licence od jiného uživatele
Tento příklad přiřadí jamesp@litwareinc.com se stejným licenčním plánem, který byl použit pro belindan@litwareinc.com:
$mgUser = Get-MgUser -UserId "belindan@litwareinc.com" -Property AssignedLicenses
Set-MgUserLicense -UserId "jamesp@litwareinc.com" -AddLicenses $mgUser.AssignedLicenses -RemoveLicenses @()
Přesunutí uživatele do jiného předplatného (licenční plán)
Tento příklad upgraduje uživatele z licenčního plánu SPE_E3 (Microsoft 365 E3) na licenční plán SPE_E5 (Microsoft 365 E5):
$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 @()
Změnu předplatného uživatelského účtu můžete ověřit pomocí tohoto příkazu.
Get-MgUserLicenseDetail -UserId "belindan@litwareinc.com"
Viz také
Správa Microsoftu 365 pomocí PowerShellu
Správa Microsoftu 365 pomocí PowerShellu
Začínáme se sadou Microsoft Graph PowerShell SDK
Použití uživatele Microsoft Graphu : assignLicense a subscribedSku API