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

リモート PowerShell を使用すると、コマンドラインから Exchange Online 組織を管理できます。 既定では、Microsoft 365 で作成したすべてのアカウントは、PowerShell Exchange Online使用できます。 リモート PowerShell を使用して Exchange Online 組織に接続するユーザーの機能を有効または無効にすることができます。 Exchange Online 組織へのリモート PowerShell アクセスでは、ユーザーに対し特別な管理権限は付与されません。 ユーザーの権限は、これまでどおり役割ベースのアクセス制御 (RBAC) とそれに割り当てられる役割によって定義されます。

注:

また、クライアント アクセス規則を使用して、Exchange Onlineへの PowerShell アクセスをブロックすることもできます。 詳細については、「Exchange Onlineのクライアント アクセス規則」を参照してください。

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

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

  • Microsoft 365 グローバル管理者は PowerShell Exchange Onlineにアクセスでき、この記事の手順を使用して、他のユーザー Exchange Online PowerShell アクセスを構成できます。 Exchange Online のアクセス許可について詳しくは、「Feature Permissions in Exchange Online」をご覧ください。

    重要

    組織内のリモート 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 アクセスを許可します。

  • PowerShell Exchange Onlineを使用してこの手順を実行することしかできません。 Exchange Online PowerShell へ接続するには、「Exchange Online 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

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

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

$NPS | 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'