Exchange Online PowerShell へのアクセスを有効または無効にする

Exchange Online PowerShell は、管理者がコマンド ラインから Microsoft 365 organizationのExchange Online部分を管理できるようにする管理インターフェイスです (Exchange Online ProtectionおよびMicrosoft Defender for Office 365)。

既定では、Microsoft 365 のすべてのアカウントで PowerShell Exchange Online使用できます。 このアクセスは、ユーザーにorganizationの管理機能を提供しません。 ロール ベースのアクセス制御 (RBAC) によって制限されます (たとえば、自分のメールボックスで設定を構成したり、所有する配布グループを管理したりできます)。

管理者は、この記事の手順を使用して、ユーザーの PowerShell への接続を無効または有効Exchange Onlineできます。

はじめに把握しておくべき情報

  • 各手順の推定完了時間:5 分未満

  • この記事の手順は、Exchange Online PowerShell でのみ使用できます。 Exchange Online PowerShell へ接続するには、「Exchange Online PowerShell に接続する」を参照してください。

  • この記事の手順を実行するには、アクセス許可を割り当てる必要があります。 以下のオプションがあります。

    • Exchange Online RBAC: Organization Management ロール グループまたは Recipient Management ロール グループのメンバーシップ。
    • Microsoft Entra RBAC: グローバル管理者ロールのメンバーシップ。

    重要

    organizationで PowerShell アクセスを迅速かつグローバルに無効にする必要がある場合は、管理者アカウントを考慮せずになどのGet-User | Set-User -RemotePowerShellEnabled $falseコマンドに注意してください。 この記事の手順を使用して、リモート PowerShell アクセスを選択的に削除するか、グローバル削除コマンドで次の構文を使用して、必要なユーザーのアクセスを保持します Get-User | Where-Object {$_.UserPrincipalName -ne 'admin1@contoso.onmicrosoft.com' -and $_.UserPrincipalName -ne 'admin2@contoso.onmicrosoft.com'...} | Set-User -RemotePowerShellEnabled $false

    誤って PowerShell アクセスからロックアウトした場合は、Microsoft 365 管理センターで新しい管理者アカウントを作成し、そのアカウントを使用して、この記事の手順を使用して PowerShell にアクセスできるようにします。

  • Exchange Onlineの OPATH フィルター構文の詳細については、「その他の OPATH 構文情報」を参照してください。

ヒント

問題がある場合は、 Exchange のフォーラムで質問してください。 次のフォーラムにアクセスしてください: Exchange Online または Exchange Online Protection

Exchange Online PowerShell へのユーザーのアクセスを有効または無効にする

この例では、ユーザーdavid@contoso.onmicrosoft.comの PowerShell Exchange Onlineへのアクセスを無効にします。

Set-User -Identity david@contoso.onmicrosoft.com -RemotePowerShellEnabled $false

この例では、ユーザーchris@contoso.onmicrosoft.comの PowerShell Exchange Onlineへのアクセスを有効にします。

Set-User -Identity chris@contoso.onmicrosoft.com -RemotePowerShellEnabled $true

多数のユーザーの Exchange Online PowerShell へのアクセスを無効にする

既存ユーザーの特定のグループの Exchange Online PowerShell へのアクセスを禁止するには、次のオプションを使用できます。

  • 既存の属性に基づいてユーザーをフィルター処理する: このメソッドは、ターゲット ユーザー アカウントがすべて一意のフィルター可能な属性を共有することを前提としています。 Title、Department、住所情報、電話番号などの一部の属性は、 Get-User コマンドレットを使用した場合にのみ表示されます。 CustomAttribute1 ~ 15 のようなその他の属性は、 Get-Mailbox コマンドレットを使用した場合にのみ表示されます。

  • 特定のユーザーのリストを使用する: 特定のユーザーのリストを生成し、このリストを使用して、Exchange Online PowerShell へのアクセスを無効にできます。

既存の属性に基づいてユーザーにフィルターをかける

既存の属性に基づいて任意の数ユーザーの Exchange Online PowerShell へのアクセスを無効にするには、次の構文を使用します。

$<VariableName> = <Get-Mailbox | Get-User> -ResultSize unlimited -Filter <Filter>

$<VariableName> | foreach {Set-User -Identity $_.WindowsEmailAddress -RemotePowerShellEnabled $false}

この例では、Title 属性に値 "Sales Associate" が含まれるすべてのユーザーの Exchange Online PowerShell へのアクセスを削除します。

$DSA = Get-User -ResultSize unlimited -Filter "(RecipientType -eq 'UserMailbox') -and (Title -like 'Sales Associate*')"

$DSA | foreach {Set-User -Identity $_.WindowsEmailAddress -RemotePowerShellEnabled $false}

特定のユーザーのリストを使用する

特定のユーザーのリストの Exchange Online PowerShell へのアクセスを無効にするには、次の構文を使用します。

$<VariableName> = Get-Content <text file>

$<VariableName> | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}

次の例では、テキスト ファイル C:\My Documents\NoPowerShell.txt を使用して、アカウントによってユーザーを識別します。 テキスト ファイルには、次のように各行に 1 つのアカウントが含まれている必要があります。

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

更新するユーザー アカウントをテキスト ファイルに設定したら、次のコマンドを実行します。

$NoPS = Get-Content "C:\My Documents\NoPowerShell.txt"

$NoPS | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}

ユーザーのExchange Online PowerShell アクセス状態を表示する

特定のユーザーの PowerShell アクセス状態を表示するには、UserIdentity> をユーザーの名前またはユーザー プリンシパル名 (UPN) に置き換え<、次のコマンドを実行します。

Get-User -Identity "<UserIdentity>" | Format-List RemotePowerShellEnabled

すべてのユーザーの Exchange Online PowerShell へのアクセス状態を表示するには、次のコマンドを実行します。

Get-User -ResultSize unlimited | Format-Table -Auto Name,DisplayName,RemotePowerShellEnabled

PowerShell にアクセスできないすべてのユーザー Exchange Online表示するには、次のコマンドを実行します。

Get-User -ResultSize unlimited -Filter 'RemotePowerShellEnabled -eq $false'

PowerShell へのアクセス権を持つすべてのユーザー Exchange Online表示するには、次のコマンドを実行します。

Get-User -ResultSize unlimited -Filter 'RemotePowerShellEnabled -eq $true'