共用方式為


啟用或停用 Exchange Online Windows PowerShell 的存取

Exchange Online PowerShell 是系統管理介面,可讓系統管理員從命令行管理 Microsoft 365 組織的 Exchange Online 部分 (包括 Exchange Online Protection 和適用於 Office 365 Microsoft Defender) 中的許多安全性功能。

根據預設,Microsoft 365 中的所有帳戶都允許使用 Exchange Online PowerShell。 此存取權不會為組織中的使用者提供系統管理功能。 它們仍然受限於 角色型訪問控制 (RBAC) (例如,他們可以在自己的信箱上設定設定,或管理他們擁有的通訊群組,但無法) 。

系統管理員可以使用本文中的程式來停用或啟用用戶連線到 Exchange Online PowerShell 的能力。

開始之前有哪些須知?

  • 每項程序的預估完成時間:不到 5 分鐘

  • 本文中的程式僅適用於 Exchange Online PowerShell。 若要連線至 Exchange Online PowerShell,請參閱連線至 Exchange Online PowerShell

  • 您必須獲得指派許可權,才能執行本文中的程式。 您有下列選項:

    • Exchange Online RBAC組織管理收件者管理 角色群組中的成員資格。
    • Microsoft Entra RBACExchange 系統管理員全域管理員* 角色中的成員資格可為使用者提供Microsoft 365 中其他功能的必要許可權 許可權。

    重要事項

    在您快速且全域地停用雲端式組織中 PowerShell 存取的哈希中,請注意類似的命令 Get-User | Set-User -EXOModuleEnabled $false ,而不考慮系統管理員帳戶。 使用本文中的程式選擇性地移除PowerShell存取權,或在全域移除命令中使用下列語法來保留需要PowerShell存取權的存取權: Get-User | Where-Object {$_.UserPrincipalName -ne 'admin1@contoso.onmicrosoft.com' -and $_.UserPrincipalName -ne 'admin2@contoso.onmicrosoft.com'...} | Set-User -EXOModuleEnabled $false

    如果您不小心將自己鎖定在PowerShell存取範圍外,請在 Microsoft 365 系統管理中心建立新的系統管理帳戶,然後使用該帳戶,使用本文中的程式為您自己提供 PowerShell 存取權。

    * Microsoft建議您使用許可權最少的角色。 使用較低許可權的帳戶有助於改善組織的安全性。 全域管理員是高度特殊許可權的角色,當您無法使用現有角色時,應該僅限於緊急案例。

  • 如需 Exchange Online 中 OPATH 篩選語法的詳細資訊,請參閱 其他 OPATH 語法資訊

提示

有問題嗎? 在 Exchange 論壇中尋求協助。 請造訪論壇,網址:Exchange OnlineExchange Online Protection

啟用或停用使用者的遠端 PowerShell 存取

此範例會停用使用者 david@contoso.onmicrosoft.com的 Exchange Online PowerShell 存取權。

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

此範例可讓使用者 chris@contoso.onmicrosoft.com存取 Exchange Online PowerShell。

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

針對眾多使用者停用遠端 PowerShell 存取

若要防止現有使用者特定群組使用遠端 PowerShell 存取,您可以使用下列選項:

  • 根據現有屬性篩選使用者:此方法假設目標用戶帳戶全都共用唯一的可篩選屬性。 某些屬性,例如標題、部門、位址資訊和電話號碼,只能從 Get-User Cmdlet 取得。 其他屬性,例如 CustomAttribute1 到 CustomAttribute15,只能從 Get-Mailbox Cmdlet 取得。
  • 使用特定使用者的清單:產生特定使用者的清單之後,您可以使用該清單來停用其對 Exchange Online PowerShell 的存取。

根據現有的屬性篩選使用者

若要根據現有屬性停用任意數目的使用者對 Exchange Online PowerShell 的存取,請使用下列語法:

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

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

此範例會針對 Title 屬性內含「Sales Associate」值的所有使用者,移除遠端 PowerShell 存取權限。

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

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

使用特定使用者的清單

若要針對特定使用者清單停用遠端 PowerShell 存取,請使用下列語法。

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

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

下列範例會使用文本檔 C:\My Documents\NoPowerShell.txt,依其帳戶識別使用者。 文字檔每一行必須包含一個帳戶,如下所示:

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 $_ -EXOModuleEnabled $false}

檢視使用者的 Exchange Online PowerShell 存取狀態

若要檢視特定使用者的 PowerShell 存取狀態,請以使用者的 UPN) (名稱或使用者主體名稱取代 <UserIdentity> ,然後執行下列命令:

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

若要顯示所有使用者的 Exchange Online PowerShell 存取狀態,請執行下列命令:

Get-User -ResultSize unlimited | Format-Table -Auto DisplayName,EXOModuleEnabled

若要顯示沒有 Exchange Online PowerShell 存取權的所有使用者,請執行下列命令:

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

若要顯示可存取 Exchange Online PowerShell 的所有使用者,請執行下列命令:

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