啟用或停用 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 RBAC:全域管理員角色的成員資格。
重要事項
在您快速且全域停用組織中 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。
啟用或停用使用者的遠端 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'
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應