啟用或停用 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

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

    重要事項

    在您快速且全域停用組織中 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 OnlineExchange Online Protection

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

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

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

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

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

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

若要防止現有使用者特定群組使用遠端 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 $_.WindowsEmailAddress -RemotePowerShellEnabled $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 -RemotePowerShellEnabled $false}

使用特定使用者的清單

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

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

$<VariableName> | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $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 $_ -RemotePowerShellEnabled $false}

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

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

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'

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

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