Zakázání přístupu ke službám Microsoft 365 pomocí PowerShellu
Tento článek se týká Microsoft 365 Enterprise i Office 365 Enterprise.
Když se účtu Microsoft 365 přiřadí licence z licenčního plánu, zpřístupní se uživateli z této licence služby Microsoft 365. Můžete ale řídit služby Microsoft 365, ke kterým má uživatel přístup. I když například licence umožňuje přístup ke službě SharePoint Online, můžete k ní přístup zakázat. Pomocí PowerShellu můžete zakázat přístup k libovolnému počtu služeb pro konkrétní licenční plán pro:
- Individuální účet.
- Skupina účtů.
- Všechny účty ve vaší organizaci
Poznámka
Existují závislosti služby Microsoft 365, které vám můžou zabránit v zakázání určité služby, pokud na ní závisejí jiné služby.
Použití sady Microsoft Graph PowerShell SDK
Nejprve se připojte ke svému tenantovi Microsoftu 365.
Přiřazování a odebírá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 referenční stránce přiřazení licence Graph API.
Ke čtení licencí dostupných v tenantovi se vyžaduje obor oprávnění Organization.Read.All.
Connect-Graph -Scopes User.ReadWrite.All, Organization.Read.All
Dále pomocí tohoto příkazu zobrazte dostupné licenční plány, označované také jako SkuPartNumber:
Get-MgSubscribedSku | Select SkuId, SkuPartNumber, ServicePlans | Sort SkuPartNumber
Další informace najdete v tématu Zobrazení licencí a služeb pomocí PowerShellu.
Pokud chcete zobrazit předchozí a následující výsledky postupů v tomto tématu, přečtěte si téma Zobrazení podrobností o licencích a službách účtu pomocí PowerShellu.
Zakázání konkrétních služeb Microsoftu 365 pro konkrétní uživatele pro konkrétní licenční plán
Pokud chcete pro konkrétní licenční plán zakázat konkrétní sadu služeb Microsoft 365 pro uživatele, proveďte následující kroky:
Krok 1: Pomocí následující syntaxe identifikujte v licenčním plánu nežádoucí služby:
Nejprve vypište licenční plány dostupné ve vašem tenantovi pomocí následujícího příkazu.
Get-MgSubscribedSku | Select SkuPartNumber
SkuPartNumber
-------------
EMSPREMIUM
SPE_E5
RIGHTSMANAGEMENT_ADHOC
Dále použijte SkuPartNumber z výše uvedeného příkazu a zobrazte seznam plánů služeb dostupných pro daný licenční plán (SKU).
Následující příklad uvádí všechny plány služeb dostupné pro SPE_E5 (Microsoft 365 E5).
Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'SPE_E5' | select -ExpandProperty ServicePlans
AppliesTo ProvisioningStatus ServicePlanId ServicePlanName
--------- ------------------ ------------- ---------------
User Success b21a6b06-1988-436e-a07b-51ec6d9f52ad PROJECT_O365_P3
User Success 64bfac92-2b17-4482-b5e5-a0304429de3e MICROSOFTENDPOINTDLP
User Success 199a5c09-e0ca-4e37-8f7c-b05d533e1ea2 MICROSOFTBOOKINGS
User Success 6db1f1db-2b46-403f-be40-e39395f08dbb CUSTOMER_KEY
User Success 4a51bca5-1eff-43f5-878c-177680f191af WHITEBOARD_PLAN3
User Success 07699545-9485-468e-95b6-2fca3738be01 FLOW_O365_P3
User Success 9c0dab89-a30c-4117-86e7-97bda240acd2 POWERAPPS_O365_P3
User Success e212cbc7-0961-4c40-9825-01117710dcb1 FORMS_PLAN_E5
User Success 57ff2da0-773e-42df-b2af-ffb7a2317929 TEAMS1
User Success 21b439ba-a0ca-424f-a6cc-52f954a5b111 WIN10_PRO_ENT_SUB
User Success eec0eb4f-6444-4f95-aba0-50c24d67f998 AAD_PREMIUM_P2
User Success c1ec4a95-1f05-45b3-a911-aa3fa01094f5 INTUNE_A
User Success 7547a3fe-08ee-4ccb-b430-5077c5041653 YAMMER_ENTERPRISE
User Success a23b959c-7ce8-4e57-9140-b90eb88a9e97 SWAY
User Success e95bec33-7c88-4a70-8e19-b10bd9d0c014 SHAREPOINTWAC
User Success 5dbe027f-2339-4123-9542-606e4d348a72 SHAREPOINTENTERPRISE
User Success b737dad2-2f6c-4c65-90e3-ca563267e8b9 PROJECTWORKMANAGEMENT
User Success 43de0ff5-c92c-492b-9116-175376d08c38 OFFICESUBSCRIPTION
User Success 0feaeb32-d00e-4d66-bd5a-43b5b83db82c MCOSTANDARD
User Success 9f431833-0334-42de-a7dc-70aa40db46db LOCKBOX_ENTERPRISE
User Success efb87545-963c-4e0d-99df-69c6916d9eb0 EXCHANGE_S_ENTERPRISE
Úplný seznam licenčních plánů (označovaných také jako názvy produktů), zahrnutých plánů služeb a odpovídající popisné názvy najdete v tématu Názvy produktů a identifikátory plánů služeb pro licencování. (Pomocí Id plánu služby vyhledejte odpovídající popisný název plánu služby.
Následující 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 @()
Vlastnost DisabledPlans parametru AddLicenses v Set-MgUserLicense přepíše existující hodnotu DisabledPlans uživatele. Aby se zachoval stav stávajících plánů služeb, musí být aktuální stav plánů služeb uživatele sloučen s novými plány, které budou zakázány.
Nezahrnou-li se stávající plány DisabledPlans, bude dříve zakázaný plán uživatele povolen.
Následující příklad aktualizuje uživatele s SPE_E5 (Microsoft 365 E5) a vypne plány služby Sway a Forms a ponechá stávající plány uživatele v aktuálním stavu:
## Get the services that have already been disabled for the user.
$userLicense = Get-MgUserLicenseDetail -UserId "belinda@fdoau.onmicrosoft.com"
$userDisabledPlans = $userLicense.ServicePlans | `
Where ProvisioningStatus -eq "Disabled" | `
Select -ExpandProperty ServicePlanId
## Get the new service plans that are going to be disabled
$e5Sku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'SPE_E5'
$newDisabledPlans = $e5Sku.ServicePlans | `
Where ServicePlanName -in ("SWAY", "FORMS_PLAN_E5") | `
Select -ExpandProperty ServicePlanId
## Merge the new plans that are to be disabled with the user's current state of disabled plans
$disabledPlans = ($userDisabledPlans + $newDisabledPlans) | Select -Unique
$addLicenses = @(
@{
SkuId = $e5Sku.SkuId
DisabledPlans = $disabledPlans
}
)
## Update user's license
Set-MgUserLicense -UserId "belinda@litwareinc.onmicrosoft.com" -AddLicenses $addLicenses -RemoveLicenses @()
Použití modulu Microsoft Azure Active Directory pro Windows PowerShell
Nejprve se připojte ke svému tenantovi Microsoftu 365.
Dále pomocí tohoto příkazu zobrazte dostupné licenční plány označované také jako AccountSkuIds:
Get-MsolAccountSku | Select AccountSkuId | Sort AccountSkuId
Poznámka
PowerShell Core nepodporuje modul Microsoft Azure Active Directory pro modul Windows PowerShell a rutiny s Msol v názvu. Pokud chcete tyto rutiny dál používat, musíte je spustit z Windows PowerShell.
Další informace najdete v tématu Zobrazení licencí a služeb pomocí PowerShellu.
Pokud chcete zobrazit předchozí a následující výsledky postupů v tomto tématu, přečtěte si téma Zobrazení podrobností o licencích a službách účtu pomocí PowerShellu.
K dispozici je skript PowerShellu, který automatizuje postupy popsané v tomto tématu. Skript konkrétně umožňuje zobrazit a zakázat služby ve vaší organizaci Microsoft 365, včetně Sway. Další informace najdete v tématu Zakázání přístupu k Sway pomocí PowerShellu.
Zakázání konkrétních služeb Microsoftu 365 pro konkrétní uživatele pro konkrétní licenční plán
Pokud chcete pro konkrétní licenční plán zakázat konkrétní sadu služeb Microsoft 365 pro uživatele, proveďte následující kroky:
Krok 1: Pomocí následující syntaxe identifikujte v licenčním plánu nežádoucí služby:
$LO = New-MsolLicenseOptions -AccountSkuId <AccountSkuId> -DisabledPlans "<UndesiredService1>", "<UndesiredService2>"...
Následující příklad vytvoří objekt LicenseOptions, který zakáže služby Office a SharePoint Online v licenčním plánu s názvem litwareinc:ENTERPRISEPACK
(Office 365 Enterprise E3).
$LO = New-MsolLicenseOptions -AccountSkuId "litwareinc:ENTERPRISEPACK" -DisabledPlans "SHAREPOINTWAC", "SHAREPOINTENTERPRISE"
Krok 2: U jednoho nebo více uživatelů použijte objekt LicenseOptions z kroku 1.
Pokud chcete vytvořit nový účet se zakázanými službami, použijte následující syntaxi:
New-MsolUser -UserPrincipalName <Account> -DisplayName <DisplayName> -FirstName <FirstName> -LastName <LastName> -LicenseAssignment <AccountSkuId> -LicenseOptions $LO -UsageLocation <CountryCode>
Následující příklad vytvoří nový účet pro Allie Bellew, který přiřadí licenci a zakáže služby popsané v kroku 1.
New-MsolUser -UserPrincipalName allieb@litwareinc.com -DisplayName "Allie Bellew" -FirstName Allie -LastName Bellew -LicenseAssignment litwareinc:ENTERPRISEPACK -LicenseOptions $LO -UsageLocation US
Další informace o vytváření uživatelských účtů v PowerShellu pro Microsoft 365 najdete v tématu Vytvoření uživatelských účtů pomocí PowerShellu.
Pokud chcete zakázat služby pro existujícího licencovaného uživatele, použijte následující syntaxi:
Set-MsolUserLicense -UserPrincipalName <Account> -LicenseOptions $LO
Tento příklad zakáže služby pro uživatele BelindaN@litwareinc.com.
Set-MsolUserLicense -UserPrincipalName belindan@litwareinc.com -LicenseOptions $LO
Pokud chcete zakázat služby popsané v kroku 1 pro všechny stávající licencované uživatele, zadejte název plánu Microsoft 365 v zobrazení rutiny Get-MsolAccountSku (například litwareinc:ENTERPRISEPACK) a spusťte následující příkazy:
$acctSKU="<AccountSkuId>"
$AllLicensed = Get-MsolUser -All | Where {$_.isLicensed -eq $true -and $_.licenses.AccountSku.SkuPartNumber -contains ($acctSKU).Substring($acctSKU.IndexOf(":")+1, $acctSKU.Length-$acctSKU.IndexOf(":")-1)}
$AllLicensed | ForEach {Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -LicenseOptions $LO}
Pokud použijete rutinu Get-MsolUser bez použití parametru All , vrátí se pouze prvních 500 uživatelských účtů.
Pokud chcete zakázat služby pro skupinu existujících uživatelů, použijte k identifikaci uživatelů některou z následujících metod:
Metoda 1. Filtrování účtů na základě existujícího atributu účtu
K tomu použijte následující syntaxi:
$x = Get-MsolUser -All <FilterableAttributes>
$x | ForEach {Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -LicenseOptions $LO}
Následující příklad zakáže služby pro uživatele v prodejním oddělení v USA.
$USSales = Get-MsolUser -All -Department "Sales" -UsageLocation "US"
$USSales | ForEach {Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -LicenseOptions $LO}
Metoda 2: Použití seznamu konkrétních účtů
Chcete-li to provést, proveďte následující kroky:
Vytvořte textový soubor, který obsahuje jeden účet na každém řádku takto:
akol@contoso.com tjohnston@contoso.com kakers@contoso.com
V tomto příkladu je textový soubor C:\My Documents\Accounts.txt.
Spusťte následující příkaz:
Get-Content "C:\My Documents\Accounts.txt" | foreach {Set-MsolUserLicense -UserPrincipalName $_ -LicenseOptions $LO}
Pokud chcete zakázat přístup ke službám pro více licenčních plánů, opakujte výše uvedené pokyny pro každý licenční plán a ujistěte se, že:
- Uživatelským účtům byl přiřazen licenční plán.
- Služby, které se mají zakázat, jsou k dispozici v licenčním plánu.
Pokud chcete zakázat služby Microsoftu 365 pro uživatele při přiřazování k licenčnímu plánu, přečtěte si téma Zákaz přístupu ke službám při přiřazování uživatelských licencí.
Přiřazení všech služeb v licenčním plánu k uživatelskému účtu
U uživatelských účtů, u kterých byly služby zakázané, můžete povolit všechny služby pro konkrétní licenční plán pomocí těchto příkazů:
$userUPN="<user account UPN>"
$acctSKU="<AccountSkuId>"
$LO = New-MsolLicenseOptions -AccountSkuId $acctSKU
Set-MsolUserLicense -UserPrincipalName $userUPN -LicenseOptions $LO
Související téma
Správa uživatelských účtů, licencí a skupin Microsoft 365 pomocí PowerShellu
Váš názor
Odeslat a zobrazit názory pro