Inaktivera åtkomst till Microsoft 365-tjänster när du tilldelar användarlicenser

Denna artikel gäller för både Microsoft 365 Enterprise och Office 365 Enterprise.

Microsoft 365-prenumerationer levereras med tjänstplaner för enskilda tjänster. Microsoft 365-administratörer behöver ofta inaktivera vissa planer när de tilldelar licenser till användare. Med anvisningarna i den här artikeln kan du tilldela en Microsoft 365-licens när du inaktiverar specifika tjänstplaner med PowerShell för ett enskilt användarkonto eller flera användarkonton.

Använda Azure Active Directory PowerShell för Graph-modulen

Anslut först till din Microsoft 365-klientorganisation.

Ange sedan licensplaner för din klientorganisation med det här kommandot.

Get-AzureADSubscribedSku | Select SkuPartNumber

Hämta sedan inloggningsnamnet för det konto som du vill lägga till en licens till, även kallat användarens huvudnamn (UPN).

Kompilera sedan en lista över tjänster som ska aktiveras. En fullständig lista över licensplaner (även kallade produktnamn), deras inkluderade tjänstplaner och deras motsvarande egna namn finns i Produktnamn och tjänstplansidentifierare för licensiering.

För kommandoblocket nedan fyller du i användarens huvudnamn för användarkontot, SKU-delnumret och listan över tjänstplaner för att aktivera och ta bort den förklarande texten och < tecknen och > . Kör sedan de resulterande kommandona i PowerShell-kommandotolken.

$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

Använd Microsoft Azure Active Directory-modulen för Windows PowerShell

Anslut först till din Microsoft 365-klientorganisation.

Kör sedan det här kommandot för att se dina aktuella prenumerationer:

Get-MsolAccountSku

Obs!

PowerShell Core stöder inte Microsoft Azure Active Directory-modul för Windows PowerShell-modulen och-cmdlets med MSOL i namnet. Om du vill fortsätta använda dessa cmdlets måste du köra dem från Windows PowerShell.

I visningen av Get-MsolAccountSku kommandot:

  • AccountSkuId är en prenumeration för din organisation i <formatet OrganizationName>:<Subscription> . <OrganizationName> är det värde som du angav när du registrerade dig i Microsoft 365 och är unikt för din organisation. Prenumerationsvärdet <> är för en specifik prenumeration. För litwareinc:ENTERPRISEPACK är organisationsnamnet t.ex. litwareinc och prenumerationsnamnet är ENTERPRISEPACK (Office 365 Enterprise E3).

  • ActiveUnits är antalet licenser som du har köpt för prenumerationen.

  • WarningUnits är antalet licenser i en prenumeration som du inte har förnyat och som upphör att gälla efter respitperioden på 30 dagar.

  • ConsumedUnits är antalet licenser som du har tilldelat till användare för prenumerationen.

Observera AccountSkuId för din Microsoft 365-prenumeration som innehåller de användare som du vill licensiera. Kontrollera också att det finns tillräckligt med licenser för att tilldela (subtrahera ConsumedUnits från ActiveUnits).

Kör sedan det här kommandot för att se information om De Microsoft 365-tjänstplaner som är tillgängliga i alla dina prenumerationer:

Get-MsolAccountSku | Select -ExpandProperty ServiceStatus

Från visningen av det här kommandot bestämmer du vilka tjänstplaner som du vill inaktivera när du tilldelar licenser till användare.

Här är en partiell lista över tjänstplaner och deras motsvarande Microsoft 365-tjänster.

Följande tabell visar Microsoft 365-tjänstplaner och deras egna namn för de vanligaste tjänsterna. Listan över tjänstplaner kan vara annorlunda.

Tjänstplan Beskrivning
SWAY
Sway
TEAMS1
Microsoft Teams
YAMMER_ENTERPRISE
Yammer
RMS_S_ENTERPRISE
Azure Rights Management (RMS)
OFFICESUBSCRIPTION
Microsoft 365-appar för företag (hette tidigare Office 365 ProPlus)
MCOSTANDARD
Skype för företag – Online
SHAREPOINTWAC
Office
SHAREPOINTENTERPRISE
SharePoint Online
EXCHANGE_S_ENTERPRISE
Exchange Online-abonnemang 2

En fullständig lista över licensplaner (även kallade produktnamn), deras inkluderade tjänstplaner och deras motsvarande egna namn finns i Produktnamn och tjänstplansidentifierare för licensiering.

Nu när du har AccountSkuId och tjänstplaner att inaktivera kan du tilldela licenser för en enskild användare eller för flera användare.

För en enskild användare

För en enskild användare fyller du i användarens huvudnamn för användarkontot, AccountSkuId och listan över tjänstplaner för att inaktivera och ta bort den förklarande texten och < tecknen och > . Kör sedan de resulterande kommandona i PowerShell-kommandotolken.

$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

Här är ett exempel på ett kommandoblock för kontot med namnet belindan@contoso.com, för contoso:ENTERPRISEPACK-licensen och de tjänstplaner som ska inaktiveras är RMS_S_ENTERPRISE, SWAY, INTUNE_O365 och 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

För flera användare

Om du vill utföra den här administrationsuppgiften för flera användare skapar du en csv-textfil (kommaavgränsat värde) som innehåller fälten UserPrincipalName och UsageLocation. Här är ett exempel:

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

Fyll sedan i platsen för CSV-filerna för indata och utdata, kontots SKU-ID och listan över tjänstplaner som ska inaktiveras och kör sedan de resulterande kommandona i PowerShell-kommandotolken.

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

Det här PowerShell-kommandoblocket:

  • Visar användarens huvudnamn för varje användare.

  • Tilldelar anpassade licenser till varje användare.

  • Skapar en CSV-fil med alla användare som har bearbetats och visar deras licensstatus.

Se även

Inaktivera åtkomst till Microsoft 365-tjänster med PowerShell

Inaktivera åtkomst till Sway med PowerShell

Hantera Microsoft 365-användarkonton,-licenser och-grupper med PowerShell

Hantera Microsoft 365 med PowerShell