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

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

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

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

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

  • この手順を実行するには、PowerShell Exchange Onlineを使用する必要があります。 Exchange Online PowerShell へ接続するには、「Exchange Online PowerShell に接続する」を参照してください。

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

  • また、クライアント アクセス ルールを使用して、PowerShell へのアクセスをブロックExchange Online。 詳細については、「クライアント アクセスルール」を参照Exchange Online。

ヒント

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

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

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

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

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

Set-User -Identity david@contoso.com -RemotePowerShellEnabled $true

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

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

  • 既存の属性に基づいてユーザーにフィルターをかける: この方法では、すべての対象ユーザーのアカウントが、フィルターできる固有の属性を共有していることを前提にしています。役職、部署、住所情報、電話番号などの一部の属性は、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 $_ -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 $_ -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.com
tjohnston@contoso.com
kakers@contoso.com

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

$NPS = Get-Content "C:\My Documents\NoPowerShell.txt"
$NPS | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}

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

特定のユーザーの Exchange Online PowerShell へのアクセス状態を表示するには、次の構文を使用します。

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

この例では、Sarah Jones という名前のユーザーの Exchange Online PowerShell へのアクセス状態を表示します。

Get-User -Identity "Sarah Jones" | Format-List RemotePowerShellEnabled

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

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

Exchange Online PowerShell へのアクセス許可が付与されていないユーザーのみを表示するには、次のコマンドを実行します。

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

Exchange Online PowerShell へのアクセス許可が付与されているユーザーのみを表示するには、次のコマンドを実行します。

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