Toegang tot Microsoft 365 services uitschakelen tijdens het toewijzen van gebruikerslicenties

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

Microsoft 365 abonnementen worden geleverd met serviceplannen voor afzonderlijke services. Microsoft 365 beheerders moeten vaak bepaalde abonnementen uitschakelen bij het toewijzen van licenties aan gebruikers. Met de instructies in dit artikel kunt u een Microsoft 365-licentie toewijzen terwijl u specifieke serviceplannen uitschakelt met behulp van PowerShell voor een afzonderlijk gebruikersaccount of meerdere gebruikersaccounts.

De Azure Active Directory PowerShell gebruiken voor Graph module

Maak eerst verbinding met uw Microsoft 365 tenant.

Geef vervolgens de licentieplannen voor uw tenant weer met deze opdracht.

Get-AzureADSubscribedSku | Select SkuPartNumber

Haal vervolgens de aanmeldingsnaam op van het account waaraan u een licentie wilt toevoegen, ook wel bekend als de USER Principal Name (UPN).

Compileer vervolgens een lijst met services die u wilt inschakelen. 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.

Vul voor het onderstaande opdrachtblok de user principal name van het gebruikersaccount, het SKU-onderdeelnummer en de lijst met serviceplannen in om de verklarende tekst en de < and > tekens in te schakelen en te verwijderen. Voer vervolgens de resulterende opdrachten uit bij de PowerShell-opdrachtprompt.

$userUPN="<user account UPN>"
$skuPart="<SKU part number>"
$serviceList=<double-quoted enclosed, comma-separated list of enabled services>
$user = Get-AzureADUser -ObjectID $userUPN
$skuID= (Get-AzureADSubscribedSku  | Where {$_.SkuPartNumber -eq $skuPart}).SkuID
$SkuFeaturesToEnable = @($serviceList)
$StandardLicense = Get-AzureADSubscribedSku | Where {$_.SkuId -eq $skuID}
$SkuFeaturesToDisable = $StandardLicense.ServicePlans | ForEach-Object { $_ | Where {$_.ServicePlanName -notin $SkuFeaturesToEnable }}
$License = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicense
$License.SkuId = $StandardLicense.SkuId
$License.DisabledPlans = $SkuFeaturesToDisable.ServicePlanId
$LicensesToAssign = New-Object -TypeName Microsoft.Open.AzureAD.Model.AssignedLicenses
$LicensesToAssign.AddLicenses = $License
Set-AzureADUserLicense -ObjectId $user.ObjectId -AssignedLicenses $LicensesToAssign

De Microsoft Azure Active Directory-module gebruiken voor Windows PowerShell

Maak eerst verbinding met uw Microsoft 365 tenant.

Voer vervolgens deze opdracht uit om uw huidige abonnementen te zien:

Get-MsolAccountSku

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.

In de weergave van de Get-MsolAccountSku opdracht:

  • AccountSkuId is een abonnement voor uw organisatie in <OrganizationName>:<Subscription> indeling. Dit <OrganizationName> is de waarde die u hebt opgegeven toen u zich registreerde bij Microsoft 365 en is uniek voor uw organisatie. De <Subscription> waarde is voor een specifiek abonnement. Voor litwareinc:ENTERPRISEPACK is de naam van de organisatie bijvoorbeeld litwareinc en de abonnementsnaam ENTERPRISEPACK (Office 365 Enterprise E3).

  • ActiveUnits is het aantal licenties dat u hebt gekocht voor het abonnement.

  • WarningUnits is het aantal licenties in een abonnement dat u niet hebt verlengd en dat verloopt na de respijtperiode van 30 dagen.

  • ConsumedUnits is het aantal licenties dat u hebt toegewezen aan gebruikers voor het abonnement.

Noteer de AccountSkuId voor uw Microsoft 365-abonnement met de gebruikers die u een licentie wilt geven. Zorg er ook voor dat er voldoende licenties zijn om toe te wijzen ( consumedunits aftrekken van ActiveUnits).

Voer vervolgens deze opdracht uit om de details te zien van de Microsoft 365 serviceabonnementen die beschikbaar zijn in al uw abonnementen:

Get-MsolAccountSku | Select -ExpandProperty ServiceStatus

Bepaal in de weergave van deze opdracht welke serviceplannen u wilt uitschakelen wanneer u licenties aan gebruikers toewijst.

Hier volgt een gedeeltelijke lijst met serviceplannen en de bijbehorende Microsoft 365 services.

In de volgende tabel ziet u de Microsoft 365 serviceplannen en hun beschrijvende namen voor de meest voorkomende services. Uw lijst met serviceplannen kan afwijken.

Serviceplan Beschrijving
SWAY
Sway
TEAMS1
Microsoft Teams
YAMMER_ENTERPRISE
Yammer
RMS_S_ENTERPRISE
Azure Rights Management (RMS)
OFFICESUBSCRIPTION
Microsoft 365-apps voor ondernemingen (eerder Office 365 ProPlus genoemd)
MCOSTANDARD
Skype voor Bedrijven Online
SHAREPOINTWAC
Kantoor
SHAREPOINTENTERPRISE
SharePoint Online
EXCHANGE_S_ENTERPRISE
Exchange Online Abonnement 2

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.

Nu u de AccountSkuId en de serviceplannen hebt om uit te schakelen, kunt u licenties toewijzen voor een afzonderlijke gebruiker of voor meerdere gebruikers.

Voor één gebruiker

Voor één gebruiker vult u de principal-naam van de gebruiker in van het gebruikersaccount, de AccountSkuId en de lijst met serviceplannen om de verklarende tekst en de < and > tekens uit te schakelen en te verwijderen. Voer vervolgens de resulterende opdrachten uit bij de PowerShell-opdrachtprompt.

$userUPN="<the user's account name in email format>"
$accountSkuId="<the AccountSkuId from the Get-MsolAccountSku command>"
$planList=@( <comma-separated, double-quote enclosed list of the service plans to disable> )
$licenseOptions=New-MsolLicenseOptions -AccountSkuId $accountSkuId -DisabledPlans $planList
Set-MsolUserLicense -UserPrincipalName $userUpn -AddLicenses $accountSkuId -ErrorAction SilentlyContinue
Sleep -Seconds 5
Set-MsolUserLicense -UserPrincipalName $userUpn -LicenseOptions $licenseOptions -ErrorAction SilentlyContinue

Hier volgt een voorbeeld van een opdrachtblok voor het account met de naam belindan@contoso.com, voor de contoso:ENTERPRISEPACK-licentie en de serviceplannen die moeten worden uitgeschakeld, zijn RMS_S_ENTERPRISE, SWAY, INTUNE_O365 en YAMMER_ENTERPRISE:

$userUPN="belindan@contoso.com"
$accountSkuId="contoso:ENTERPRISEPACK"
$planList=@( "RMS_S_ENTERPRISE","SWAY","INTUNE_O365","YAMMER_ENTERPRISE" )
$licenseOptions=New-MsolLicenseOptions -AccountSkuId $accountSkuId -DisabledPlans $planList
Set-MsolUserLicense -UserPrincipalName $userUpn -AddLicenses $accountSkuId -ErrorAction SilentlyContinue
Sleep -Seconds 5
Set-MsolUserLicense -UserPrincipalName $userUpn -LicenseOptions $licenseOptions -ErrorAction SilentlyContinue

Voor meerdere gebruikers

Als u deze beheertaak voor meerdere gebruikers wilt uitvoeren, maakt u een tekstbestand met door komma's gescheiden waarden (CSV) dat de velden UserPrincipalName en UsageLocation bevat. Hier volgt een voorbeeld:

UserPrincipalName,UsageLocation
ClaudeL@contoso.onmicrosoft.com,FR
LynneB@contoso.onmicrosoft.com,US
ShawnM@contoso.onmicrosoft.com,US

Vul vervolgens de locatie in van de CSV-bestanden voor invoer en uitvoer, de account-SKU-id en de lijst met serviceplannen die u wilt uitschakelen en voer vervolgens de resulterende opdrachten uit bij de PowerShell-opdrachtprompt.

$inFileName="<path and file name of the input CSV file that contains the users, example: C:\admin\Users2License.CSV>"
$outFileName="<path and file name of the output CSV file that records the results, example: C:\admin\Users2License-Done.CSV>"
$accountSkuId="<the AccountSkuId from the Get-MsolAccountSku command>"
$planList=@( <comma-separated, double-quote enclosed list of the plans to disable> )
$users=Import-Csv $inFileName
$licenseOptions=New-MsolLicenseOptions -AccountSkuId $accountSkuId -DisabledPlans $planList
ForEach ($user in $users)
{
$user.Userprincipalname
$upn=$user.UserPrincipalName
Set-MsolUserLicense -UserPrincipalName $upn -AddLicenses $accountSkuId -ErrorAction SilentlyContinue
sleep -Seconds 5
Set-MsolUserLicense -UserPrincipalName $upn -LicenseOptions $licenseOptions -ErrorAction SilentlyContinue
$users | Get-MsolUser | Select UserPrincipalName, Islicensed,Usagelocation | Export-Csv $outFileName
}

Dit PowerShell-opdrachtblok:

  • Geeft de user principal name van elke gebruiker weer.

  • Hiermee worden aangepaste licenties aan elke gebruiker toegewezen.

  • Hiermee maakt u een CSV-bestand met alle gebruikers die zijn verwerkt en wordt hun licentiestatus weergegeven.

Zie ook

Toegang tot Microsoft 365-services uitschakelen met PowerShell

Toegang tot Sway uitschakelen met PowerShell

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

Microsoft 365 beheren met PowerShell