PowerShell を使用して Microsoft 365 サービスへのアクセスを無効にする
この記事は、Microsoft 365 Enterprise および Office 365 Enterprise の両方に適用されます。
Microsoft 365 アカウントにライセンス プランからのライセンスが割り当てられると、そのライセンスのユーザーが Microsoft 365 サービスを利用できるようになります。 ただし、ユーザーがアクセスできる Microsoft 365 サービスを制御できます。 たとえば、ライセンスによって SharePoint Online サービスへのアクセスが許可されている場合でも、そのサービスへのアクセスを無効にすることができます。 PowerShell を使用して、特定のライセンス プランの任意の数のサービスへのアクセスを無効にすることができます。
- 個々のアカウント。
- アカウントのグループ。
- 組織内のすべてのアカウント。
注:
Microsoft 365 サービスの依存関係があり、他のサービスが依存している場合に指定されたサービスを無効にできない可能性があります。
Microsoft Graph PowerShell SDK を使用する
ユーザーのライセンスの割り当てと削除には、User.ReadWrite.All アクセス許可スコープ、または参照ページの [ライセンスの割り当て] に一覧表示されている他のアクセス許可のいずれかが必要Graph API。
テナントで使用できるライセンスを読み取るために、Organization.Read.All アクセス許可スコープが必要です。
Connect-Graph -Scopes User.ReadWrite.All, Organization.Read.All
次に、このコマンドを使用して、使用可能なライセンス プラン (SkuPartNumber とも呼ばれます) を表示します。
Get-MgSubscribedSku | Select SkuId, SkuPartNumber, ServicePlans | Sort SkuPartNumber
詳細については、「 PowerShell を使用してライセンスとサービスを表示する」を参照してください。
このトピックの手順の前後の結果を確認するには、「 PowerShell でアカウント ライセンスとサービスの詳細を表示する」を参照してください。
特定のライセンス プランの特定のユーザーに対して特定の Microsoft 365 サービスを無効にする
特定のライセンス プランのユーザーに対して特定の Microsoft 365 サービスのセットを無効にするには、次の手順を実行します。
手順 1: 次の構文を使用して、ライセンス プランの望ましくないサービスを特定します。
まず、次のコマンドを使用して、テナントで使用できるライセンス プランを一覧表示します。
Get-MgSubscribedSku | Select SkuPartNumber
SkuPartNumber
-------------
EMSPREMIUM
SPE_E5
RIGHTSMANAGEMENT_ADHOC
次に、上記のコマンドの SkuPartNumber を使用して、特定のライセンス プラン (Sku) で使用できるサービス プランを一覧表示します。
次の例では、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
ライセンス プラン (製品名とも呼ばれます) の完全な一覧、含まれているサービス プラン、および対応するフレンドリ名については、 ライセンスの製品名とサービス プラン識別子に関するページを参照してください。 (ServicePlanId を使用して、サービス プランの対応するフレンドリ名を検索します)。
次の例では、MICROSOFTBOOKINGS (Microsoft Bookings) サービスと LOCKBOX_ENTERPRISE (Customer Lockbox) サービスがオフになっているSPE_E5 (Microsoft 365 E5) を割り当てます。
$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 @()
Set-MgUserLicenseの AddLicenses パラメーターの DisabledPlans プロパティは、ユーザーの既存の DisabledPlans 値を上書きします。 既存のサービス プランの状態を保持するには、ユーザーの現在のサービス プランの状態を、無効にする新しいプランとマージする必要があります。
既存の DisabledPlans を含めなかった場合、ユーザーの以前に無効にされたプランが有効になります。
次の例では、SPE_E5 (Microsoft 365 E5) を使用してユーザーを更新し、ユーザーの既存の無効なプランを現在の状態のままにしたまま、Swayと Forms サービス プランをオフにします。
## 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 @()
Windows PowerShell 用 Microsoft Azure Active Directory モジュールを使用する
次に、このコマンドを使用して、利用可能なライセンス プラン (AccountSkuIds とも呼ばれます) を表示します。
Get-MsolAccountSku | Select AccountSkuId | Sort AccountSkuId
注:
PowerShell Core は、Windows PowerShell 用 Microsoft Azure Active Directory モジュールと、名前に Msol が含まれるコマンドレットをサポートしていません。 これらのコマンドレットを引き続き使用するには、Windows PowerShell から実行する必要があります。
詳細については、「 PowerShell を使用してライセンスとサービスを表示する」を参照してください。
このトピックの手順の前後の結果を確認するには、「 PowerShell でアカウント ライセンスとサービスの詳細を表示する」を参照してください。
このトピックで説明されている手順を自動化する PowerShell スクリプトが利用可能です。 具体的には、このスクリプトを使用すると、Swayを含む Microsoft 365 組織のサービスを表示および無効にすることができます。 詳細については、「PowerShell を使用してSwayへのアクセスを無効にする」を参照してください。
特定のライセンス プランの特定のユーザーに対して特定の Microsoft 365 サービスを無効にする
特定のライセンス プランのユーザーに対して特定の Microsoft 365 サービスのセットを無効にするには、次の手順を実行します。
手順 1: 次の構文を使用して、ライセンス プランの望ましくないサービスを特定します。
$LO = New-MsolLicenseOptions -AccountSkuId <AccountSkuId> -DisabledPlans "<UndesiredService1>", "<UndesiredService2>"...
次の例では、ライセンス プラン litwareinc:ENTERPRISEPACK
(Office 365 Enterprise E3) で Office および SharePoint Online サービスを無効にする LicenseOptions オブジェクトを作成します。
$LO = New-MsolLicenseOptions -AccountSkuId "litwareinc:ENTERPRISEPACK" -DisabledPlans "SHAREPOINTWAC", "SHAREPOINTENTERPRISE"
手順 2: 1 人以上のユーザーで手順 1 の LicenseOptions オブジェクトを使用します。
サービスが無効になっている新しいアカウントを作成するには、次の構文を使用します。
New-MsolUser -UserPrincipalName <Account> -DisplayName <DisplayName> -FirstName <FirstName> -LastName <LastName> -LicenseAssignment <AccountSkuId> -LicenseOptions $LO -UsageLocation <CountryCode>
次の例では、ライセンスを割り当て、手順 1 で説明されているサービスを無効にする Allie Bellew の新しいアカウントを作成します。
New-MsolUser -UserPrincipalName allieb@litwareinc.com -DisplayName "Allie Bellew" -FirstName Allie -LastName Bellew -LicenseAssignment litwareinc:ENTERPRISEPACK -LicenseOptions $LO -UsageLocation US
PowerShell for Microsoft 365 でのユーザー アカウントの作成の詳細については、「 PowerShell を使用してユーザー アカウントを作成する」を参照してください。
ライセンスを付与された既存のユーザー用のサービスを無効にするには、次の構文を使用します。
Set-MsolUserLicense -UserPrincipalName <Account> -LicenseOptions $LO
この例では、 ユーザー BelindaN@litwareinc.comのサービスを無効にします。
Set-MsolUserLicense -UserPrincipalName belindan@litwareinc.com -LicenseOptions $LO
既存のすべてのライセンスを持つユーザーに対して手順 1 で説明されているサービスを無効にするには、 Get-MsolAccountSku コマンドレット ( litwareinc:ENTERPRISEPACK など) の表示から Microsoft 365 プランの名前を指定し、次のコマンドを実行します。
$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}
All パラメーターを使用せずに Get-MsolUser コマンドレットを使用する場合は、最初の 500 個のユーザー アカウントのみが返されます。
既存のユーザーのグループに対してサービスを無効にするには、次のいずれかの方法を使用して、ユーザーを特定します。
方法 1。 既存のアカウント属性に基づいてアカウントをフィルターする
この設定を行うには、次の構文を使用します。
$x = Get-MsolUser -All <FilterableAttributes>
$x | ForEach {Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -LicenseOptions $LO}
次の例では、米国の Sales 部門のユーザーのサービスを無効にします。
$USSales = Get-MsolUser -All -Department "Sales" -UsageLocation "US"
$USSales | ForEach {Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -LicenseOptions $LO}
方法 2: 特定のアカウントの一覧を使用する
これを実現するには、以下の手順を実行します。
次のように各行に 1 つのアカウントが含まれるテキスト ファイルを作成します。
akol@contoso.com tjohnston@contoso.com kakers@contoso.com
この例では、テキスト ファイルは C:\My Documents\Accounts.txt です。
次のコマンドを実行します。
Get-Content "C:\My Documents\Accounts.txt" | foreach {Set-MsolUserLicense -UserPrincipalName $_ -LicenseOptions $LO}
複数のライセンス プランのサービスへのアクセスを無効にする場合は、ライセンス プランごとに上記の手順を繰り返して、次の点を確認します。
- ユーザー アカウントにライセンス プランが割り当てられている。
- 無効にするサービスは、ライセンス プランで利用できます。
ライセンス プランへの割り当て中にユーザーに対して Microsoft 365 サービスを無効にするには、「 ユーザー ライセンスの割り当て中にサービスへのアクセスを無効にする」を参照してください。
ライセンス プラン内のすべてのサービスをユーザー アカウントに割り当てる
サービスが無効になっているユーザー アカウントの場合は、次のコマンドを使用して、特定のライセンス プランのすべてのサービスを有効にすることができます。
$userUPN="<user account UPN>"
$acctSKU="<AccountSkuId>"
$LO = New-MsolLicenseOptions -AccountSkuId $acctSKU
Set-MsolUserLicense -UserPrincipalName $userUPN -LicenseOptions $LO
関連トピック
Microsoft 365 ユーザー アカウント、ライセンス、PowerShell を使用したグループを管理する