Toegang tot Microsoft 365-services uitschakelen met PowerShell

Dit artikel is van toepassing op Microsoft 365 Enterprise en Office 365 Enterprise.

Wanneer aan een Microsoft 365-account een licentie uit een licentieabonnement is toegewezen, worden Microsoft 365 services beschikbaar gesteld aan de gebruiker vanuit die licentie. U kunt echter de Microsoft 365 services beheren waartoe de gebruiker toegang heeft. Hoewel de licentie bijvoorbeeld toegang tot de SharePoint Online-service toestaat, kunt u de toegang tot de service uitschakelen. U kunt PowerShell gebruiken om de toegang tot een willekeurig aantal services uit te schakelen voor een specifiek licentieabonnement voor:

  • Een afzonderlijk account.
  • Een groep accounts.
  • Alle accounts in uw organisatie.

Notitie

Er zijn Microsoft 365 serviceafhankelijkheden die kunnen voorkomen dat u een opgegeven service uitschakelt wanneer andere services hiervan afhankelijk zijn.

De Microsoft Graph PowerShell SDK gebruiken

Maak eerst verbinding met uw Microsoft 365 tenant.

Voor het toewijzen en verwijderen van licenties voor een gebruiker is het machtigingsbereik User.ReadWrite.All of een van de andere machtigingen op de referentiepagina 'Licentie toewijzen' Graph API vereist.

Het machtigingsbereik Organization.Read.All is vereist voor het lezen van de licenties die beschikbaar zijn in de tenant.

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

Gebruik vervolgens deze opdracht om uw beschikbare licentieplannen weer te geven, ook wel SkuPartNumber genoemd:

Get-MgSubscribedSku | Select SkuId, SkuPartNumber, ServicePlans | Sort SkuPartNumber

Zie Licenties en services weergeven met PowerShell voor meer informatie.

Als u de voor- en naresultaten van de procedures in dit onderwerp wilt bekijken, raadpleegt u Accountlicentie en servicedetails weergeven met PowerShell.

Specifieke Microsoft 365-services uitschakelen voor specifieke gebruikers voor een specifiek licentieabonnement

Voer de volgende stappen uit om een specifieke set Microsoft 365-services voor gebruikers uit te schakelen voor een specifiek licentieplan:

Stap 1: Identificeer de ongewenste services in het licentieplan met behulp van de volgende syntaxis:

Vermeld eerst de licentieabonnementen die beschikbaar zijn in uw tenant met behulp van de volgende opdracht.

Get-MgSubscribedSku | Select SkuPartNumber

SkuPartNumber
-------------
EMSPREMIUM
SPE_E5
RIGHTSMANAGEMENT_ADHOC

Gebruik vervolgens SkuPartNumber uit de bovenstaande opdracht en vermeld de serviceplannen die beschikbaar zijn voor een bepaald licentieabonnement (Sku).

In het volgende voorbeeld ziet u alle serviceplannen die beschikbaar zijn voor 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

Zie Productnamen en serviceplan-id's voor licenties voor een volledige lijst met licentieplannen (ook wel productnamen genoemd), de opgenomen serviceplannen en de bijbehorende beschrijvende namen. (Zoek met behulp van de ServicePlanId om de bijbehorende beschrijvende naam van het serviceplan op te zoeken).

In het volgende voorbeeld worden SPE_E5 (Microsoft 365 E5) toegewezen waarbij de services MICROSOFTBOOKINGS (Microsoft Bookings) en LOCKBOX_ENTERPRISE (Customer Lockbox) zijn uitgeschakeld:

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

De eigenschap DisabledPlans van de parameter AddLicenses in Set-MgUserLicense overschrijft de bestaande DisabledPlans-waarde van de gebruiker. Om de status van bestaande serviceplannen te behouden, moeten de huidige status van serviceplannen van de gebruiker worden samengevoegd met de nieuwe plannen die worden uitgeschakeld.

Als u de bestaande DisabledPlans niet opneemt, wordt het eerder uitgeschakelde abonnement van de gebruiker ingeschakeld.

In het volgende voorbeeld wordt een gebruiker bijgewerkt met SPE_E5 (Microsoft 365 E5) en worden de serviceabonnementen Sway en Forms uitgeschakeld terwijl de bestaande uitgeschakelde abonnementen van de gebruiker in de huidige staat blijven:

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

De Microsoft Azure Active Directory-module gebruiken voor Windows PowerShell

Maak eerst verbinding met uw Microsoft 365 tenant.

Gebruik vervolgens deze opdracht om uw beschikbare licentieabonnementen weer te geven, ook wel accountSkuIds genoemd:

Get-MsolAccountSku | Select AccountSkuId | Sort AccountSkuId

Notitie

PowerShell Core biedt geen ondersteuning voor de Microsoft Azure Active Directory-module voor Windows PowerShell-module en cmdlets met Msol in hun naam. Als u deze cmdlets wilt blijven gebruiken, moet u deze uitvoeren vanuit Windows PowerShell.

Zie Licenties en services weergeven met PowerShell voor meer informatie.

Als u de voor- en naresultaten van de procedures in dit onderwerp wilt bekijken, raadpleegt u Accountlicentie en servicedetails weergeven met PowerShell.

Er is een PowerShell-script beschikbaar waarmee de procedures worden geautomatiseerd die in dit onderwerp worden beschreven. Met het script kunt u met name services in uw Microsoft 365 organisatie weergeven en uitschakelen, inclusief Sway. Zie Toegang tot Sway uitschakelen met PowerShell voor meer informatie.

Specifieke Microsoft 365-services uitschakelen voor specifieke gebruikers voor een specifiek licentieabonnement

Voer de volgende stappen uit om een specifieke set Microsoft 365-services voor gebruikers uit te schakelen voor een specifiek licentieplan:

Stap 1: Identificeer de ongewenste services in het licentieplan met behulp van de volgende syntaxis:

$LO = New-MsolLicenseOptions -AccountSkuId <AccountSkuId> -DisabledPlans "<UndesiredService1>", "<UndesiredService2>"...

In het volgende voorbeeld wordt een LicenseOptions-object gemaakt waarmee de Office- en SharePoint Online-services in het licentieplan met de naam litwareinc:ENTERPRISEPACK (Office 365 Enterprise E3) worden uitgeschakeld.

$LO = New-MsolLicenseOptions -AccountSkuId "litwareinc:ENTERPRISEPACK" -DisabledPlans "SHAREPOINTWAC", "SHAREPOINTENTERPRISE"

Stap 2: Gebruik het Object LicenseOptions uit stap 1 voor een of meer gebruikers.

Gebruik de volgende syntaxis om een nieuw account te maken waarvoor de services zijn uitgeschakeld:

New-MsolUser -UserPrincipalName <Account> -DisplayName <DisplayName> -FirstName <FirstName> -LastName <LastName> -LicenseAssignment <AccountSkuId> -LicenseOptions $LO -UsageLocation <CountryCode>

In het volgende voorbeeld wordt een nieuw account voor Allie Bellew gemaakt waarmee de licentie wordt toegewezen en de services worden uitgeschakeld die in stap 1 worden beschreven.

New-MsolUser -UserPrincipalName allieb@litwareinc.com -DisplayName "Allie Bellew" -FirstName Allie -LastName Bellew -LicenseAssignment litwareinc:ENTERPRISEPACK -LicenseOptions $LO -UsageLocation US

Zie Gebruikersaccounts maken met PowerShell voor meer informatie over het maken van gebruikersaccounts in PowerShell voor Microsoft 365.

Gebruik de volgende syntaxis om de services voor een bestaande gelicentieerde gebruiker uit te schakelen:

Set-MsolUserLicense -UserPrincipalName <Account> -LicenseOptions $LO

In dit voorbeeld worden de services voor de BelindaN@litwareinc.com van de gebruiker uitgeschakeld.

Set-MsolUserLicense -UserPrincipalName belindan@litwareinc.com -LicenseOptions $LO

Als u de services wilt uitschakelen die in stap 1 worden beschreven voor alle bestaande gebruikers met een licentie, geeft u de naam van uw Microsoft 365 plan op via de weergave van de Cmdlet Get-MsolAccountSku (zoals litwareinc:ENTERPRISEPACK) en voert u de volgende opdrachten uit:

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

Als u de cmdlet Get-MsolUser gebruikt zonder de parameter All te gebruiken, worden alleen de eerste 500 gebruikersaccounts geretourneerd.

Als u de services voor een groep bestaande gebruikers wilt uitschakelen, gebruikt u een van de volgende methoden om de gebruikers te identificeren:

Methode 1. De accounts filteren op basis van een bestaand accountkenmerk

Gebruik hiervoor de volgende syntaxis:

$x = Get-MsolUser -All <FilterableAttributes>
$x | ForEach {Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -LicenseOptions $LO}

In het volgende voorbeeld worden de services uitgeschakeld voor gebruikers in de afdeling Verkoop in de Verenigde Staten.

$USSales = Get-MsolUser -All -Department "Sales" -UsageLocation "US"
$USSales | ForEach {Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -LicenseOptions $LO}

Methode 2: Een lijst met specifieke accounts gebruiken

Voer hiervoor de volgende stappen uit:

  1. Maak een tekstbestand met één account op elke regel als deze:

    akol@contoso.com
    tjohnston@contoso.com
    kakers@contoso.com
    

    In dit voorbeeld is het tekstbestand C:\Mijn documenten\Accounts.txt.

  2. Voer de volgende opdracht uit:

    Get-Content "C:\My Documents\Accounts.txt" | foreach {Set-MsolUserLicense -UserPrincipalName $_ -LicenseOptions $LO}
    

Als u de toegang tot services voor meerdere licentieabonnementen wilt uitschakelen, herhaalt u de bovenstaande instructies voor elk licentieabonnement en zorgt u ervoor dat:

  • Aan de gebruikersaccounts is het licentieplan toegewezen.
  • De uit te schakelen services zijn beschikbaar in het licentieplan.

Als u Microsoft 365 services wilt uitschakelen voor gebruikers terwijl u ze toewijst aan een licentieabonnement, raadpleegt u Toegang tot services uitschakelen tijdens het toewijzen van gebruikerslicenties.

Alle services in een licentieplan toewijzen aan een gebruikersaccount

Voor gebruikersaccounts waarvoor services zijn uitgeschakeld, kunt u alle services voor een specifiek licentieabonnement inschakelen met de volgende opdrachten:

$userUPN="<user account UPN>"
$acctSKU="<AccountSkuId>"
$LO = New-MsolLicenseOptions -AccountSkuId $acctSKU
Set-MsolUserLicense -UserPrincipalName $userUPN -LicenseOptions $LO

Microsoft 365-gebruikersaccounts, -licenties en -groepen beheren met PowerShell

Microsoft 365 beheren met PowerShell

Aan de slag met PowerShell voor Microsoft 365