ユーザー ライセンスの割り当て中に Microsoft 365 サービスへのアクセスを無効にするDisable access to Microsoft 365 services while assigning user licenses

この記事は、Microsoft 365 Enterprise および Office 365 Enterprise の両方に適用されます。This article applies to both Microsoft 365 Enterprise and Office 365 Enterprise.

Microsoft 365 サブスクリプションには、個々のサービスのサービス プランが用意されています。Microsoft 365 subscriptions come with service plans for individual services. Microsoft 365 管理者は、多くの場合、ユーザーにライセンスを割り当てるときに特定のプランを無効にする必要があります。Microsoft 365 administrators often need to disable certain plans when assigning licenses to users. この記事の手順では、Microsoft 365 ライセンスを割り当てながら、個々のユーザー アカウントまたは複数のユーザー アカウントに PowerShell を使用して特定のサービス プランを無効にできます。With the instructions in this article, you can assign a Microsoft 365 license while disabling specific service plans using PowerShell for an individual user account or multiple user accounts.

Graph 用 Azure Active Directory PowerShell モジュールを使用するUse the Azure Active Directory PowerShell for Graph module

まず 、Microsoft 365 テナントに接続しますFirst, connect to your Microsoft 365 tenant.

次に、このコマンドを使用してテナントのライセンス プランを一覧表示します。Next, list the license plans for your tenant with this command.

Get-AzureADSubscribedSku | Select SkuPartNumber

次に、ライセンスを追加するアカウントのサインイン名 (ユーザー プリンシパル名 (UPN) とも呼ばれる) を取得します。Next, get the sign-in name of the account to which you want add a license, also known as the user principal name (UPN).

次に、有効にするサービスの一覧をコンパイルします。Next, compile a list of services to enable. ライセンス プラン (製品名とも呼ばれる) の完全な一覧、付属のサービス プラン、対応する表示名については、「ライセンスの製品名とサービス プラン識別子」を 参照してくださいFor a complete list of license plans (also known as product names), their included service plans, and their corresponding friendly names, see Product names and service plan identifiers for licensing.

以下のコマンド ブロックで、ユーザー アカウントのユーザー プリンシパル名、SKU パーツ番号、およびサービス プランの一覧を入力して、説明テキストと文字を有効にして削除 < and > します。For the command block below, fill in the user principal name of the user account, the SKU part number, and the list of service plans to enable and remove the explanatory text and the < and > characters. 次に、完成したコマンドを PowerShell コマンド プロンプトで実行します。Then, run the resulting commands at the PowerShell command prompt.

$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

Windows PowerShell 用 Microsoft Azure Active Directory モジュールを使用するUse the Microsoft Azure Active Directory Module for Windows PowerShell

まず 、Microsoft 365 テナントに接続しますFirst, connect to your Microsoft 365 tenant.

次に、このコマンドを実行して現在のサブスクリプションを確認します。Next, run this command to see your current subscriptions:

Get-MsolAccountSku

注意

PowerShell Core は、Windows PowerShell 用 Microsoft Azure Active Directory モジュールと、名前に Msol が含まれるコマンドレットをサポートしていません。PowerShell Core does not support the Microsoft Azure Active Directory Module for Windows PowerShell module and cmdlets with Msol in their name. これらのコマンドレットを引き続き使用するには、Windows PowerShell から実行する必要があります。To continue using these cmdlets, you must run them from Windows PowerShell.

Get-MsolAccountSku コマンドの出力に関して次に説明します。In the display of the Get-MsolAccountSku command:

  • AccountSkuId は、次の形式で組織 <OrganizationName> のサブスクリプション <Subscription> です。AccountSkuId is a subscription for your organization in <OrganizationName>:<Subscription> format. これは、Microsoft 365 に登録するときに指定した値であり、組織 <OrganizationName> に固有の値です。The <OrganizationName> is the value that you provided when you enrolled in Microsoft 365, and is unique for your organization. 値 <Subscription> は、特定のサブスクリプションの値です。The <Subscription> value is for a specific subscription. たとえば、litwareinc:ENTERPRISEPACK の場合、組織名は litwareinc、サブスクリプション名は ENTERPRISEPACK (Office 365 Enterprise E3) です。For example, for litwareinc:ENTERPRISEPACK, the organization name is litwareinc, and the subscription name is ENTERPRISEPACK (Office 365 Enterprise E3).

  • ActiveUnits は、サブスクリプションで購入したライセンス数です。ActiveUnits is the number of licenses that you've purchased for the subscription.

  • WarningUnits は、まだ更新しておらず、30 日の猶予期間を過ぎると有効期限切れになる、サブスクリプション内のライセンス数です。WarningUnits is the number of licenses in a subscription that you haven't renewed, and that will expire after the 30-day grace period.

  • ConsumedUnits は、このサブスクリプションでユーザーに割り当てたライセンスの数です。ConsumedUnits is the number of licenses that you've assigned to users for the subscription.

ライセンスを取得するユーザーを含む Microsoft 365 サブスクリプションの AccountSkuId に注意してください。Note the AccountSkuId for your Microsoft 365 subscription that contains the users you want to license. また、割り当てるのに十分なライセンスが存在する (ActiveUnits から ConsumedUnits を減算する) 必要がありますAlso, ensure that there are enough licenses to assign (subtract ConsumedUnits from ActiveUnits ).

次に、このコマンドを実行して、すべてのサブスクリプションで利用可能な Microsoft 365 サービス プランの詳細を確認します。Next, run this command to see the details about the Microsoft 365 service plans that are available in all your subscriptions:

Get-MsolAccountSku | Select -ExpandProperty ServiceStatus

このコマンドの出力に基づいて、ユーザーにライセンスを割り当てるときに無効にするサービス プランを判別します。From the display of this command, determine which service plans you would like to disable when you assign licenses to users.

サービス プランとそれに対応する Microsoft 365 サービスの一部を次に示します。Here is a partial list of service plans and their corresponding Microsoft 365 services.

次の表に、最も一般的なサービスの Microsoft 365 サービス プランとその親しみ名を示します。The following table shows the Microsoft 365 service plans and their friendly names for the most common services. 実際のサービス プランの一覧とは、異なる場合があります。Your list of service plans might be different.

サービス プランService plan 説明Description
SWAY
SwaySway
TEAMS1
Microsoft TeamsMicrosoft Teams
YAMMER_ENTERPRISE
YammerYammer
RMS_S_ENTERPRISE
Azure Rights Management (RMS)Azure Rights Management (RMS)
OFFICESUBSCRIPTION
Microsoft 365 Apps for enterprise (以前は Office 365 ProPlus)Microsoft 365 Apps for enterprise (previously named Office 365 ProPlus)
MCOSTANDARD
Skype for Business OnlineSkype for Business Online
SHAREPOINTWAC
OfficeOffice
SHAREPOINTENTERPRISE
SharePoint OnlineSharePoint Online
EXCHANGE_S_ENTERPRISE
Exchange Online プラン 2Exchange Online Plan 2

ライセンス プラン (製品名とも呼ばれる) の完全な一覧、付属のサービス プラン、対応する表示名については、「ライセンスの製品名とサービス プラン識別子」を 参照してくださいFor a complete list of license plans (also known as product names), their included service plans, and their corresponding friendly names, see Product names and service plan identifiers for licensing.

この時点で、AccountSkuId と無効にするサービス プランが決まったため、1 ユーザーまたは複数ユーザーにライセンスを割り当てることができます。Now that you have the AccountSkuId and the service plans to disable, you can assign licenses for an individual user or for multiple users.

単一ユーザーの場合For a single user

1 人のユーザーの場合は、ユーザー アカウントのユーザー プリンシパル名、AccountSkuId、およびサービス プランの一覧を入力して、説明テキストと文字を無効にして削除 < and > します。For a single user, fill in the user principal name of the user account, the AccountSkuId, and the list of service plans to disable and remove the explanatory text and the < and > characters. 次に、完成したコマンドを PowerShell コマンド プロンプトで実行します。Then, run the resulting commands at the PowerShell command prompt.

$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

コマンド ブロックの例を以下に示します。アカウント名は belindan@contoso.com で、ライセンスは contoso:ENTERPRISEPACK であり、RMS_S_ENTERPRISE、SWAY、INTUNE_O365、YAMMER_ENTERPRISE の各サービス プランを無効にします。Here is an example command block for the account named belindan@contoso.com, for the contoso:ENTERPRISEPACK license, and the service plans to disable are RMS_S_ENTERPRISE, SWAY, INTUNE_O365, and 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

複数ユーザーの場合For multiple users

この管理タスクを複数ユーザーに実行するには、UserPrincipalName フィールドと UsageLocation フィールドが含まれるコンマ区切り値 (CSV) テキスト ファイルを作成します。次に例を示します。To perform this administration task for multiple users, create a comma-separated value (CSV) text file that contains the UserPrincipalName and UsageLocation fields. Here is an example:

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

その後、入力および出力の各 CSV ファイルの場所、アカウント SKU ID、無効にするサービス プランの一覧を入力し、完成したコマンドを PowerShell コマンド プロンプトで実行します。Next, fill in the location of the input and output CSV files, the account SKU ID, and the list of service plans to disable, and then run the resulting commands at the PowerShell command prompt.

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

この PowerShell コマンド ブロックは以下の処理を行います。This PowerShell command block:

  • 各ユーザーのユーザー プリンシパル名を表示します。Displays the user principal name of each user.

  • 各ユーザーにカスタマイズされたライセンスを割り当てます。Assigns customized licenses to each user.

  • 処理されたすべてのユーザーが含まれる CSV ファイルを作成し、そのライセンス状態を示します。Creates a CSV file with all the users that were processed and shows their license status.

関連項目See also

PowerShell を使用して Microsoft 365 サービスへのアクセスを無効にするDisable access to Microsoft 365 services with PowerShell

PowerShell を使用して Sway へのアクセスを無効にするDisable access to Sway with PowerShell

Microsoft 365 ユーザー アカウント、ライセンス、PowerShell を使用したグループを管理するManage Microsoft 365 user accounts, licenses, and groups with PowerShell

PowerShell で Microsoft 365を管理するManage Microsoft 365 with PowerShell