前言

在撰寫、執行 Exchage 設定相關指令時,常常遇到沒有權限的情況發生。權限不足的錯誤訊息是千奇百怪,要知道是哪個權限又花費不少時間。本篇文章簡單記錄透過 Get-ManagementRole 與 Get-ManagementRoleAssignment 指令,知道該授予使用者哪個角色(或角色群組),讓使用者可以執行該指令。本篇文章若有錯誤或任何建議,請各位先進不吝提出。

在 Exchange 系統管理中心 > 權限,可以找到角色群組與角色


操作流程

查詢的指令如下,首先先執行 :
(<cmdlet>為你要查詢的指令,CmdletParameters 為執行指令的參數)
$Perms = Get-ManagementRole -Cmdlet <cmdlet> [-CmdletParameters <parameter1>,<parameter2>.... ]

接著執行
$Perms | foreach {Get-ManagementRoleAssignment -Role $_.Name -Delegating $false | Format-Table -Auto Role,RoleAssigneeType,RoleAssigneeName}

以 Get-MailboxRegionalConfiguration (查詢信箱語言、時區設定)
$Perms = Get-ManagementRole -Cmdlet Get-MailboxRegionalConfiguration
$Perms | foreach {Get-ManagementRoleAssignment -Role $_.Name -Delegating $false | Format-Table -Auto Role,RoleAssigneeType,RoleAssigneeName}


從上面的執行結果可以了解哪一個角色群組 (RoleAssigneeName) 與 角色(Role) 可以執行 Get-MailboxRegionalConfiguration。 如 Organization Management 角色群組的 Mail Recipients 角色。

My 開頭的角色可以讓一般使用者使用

接下來只要到 Exchange 系統管理加入角色群組,即可使用該指令 (下面操作僅參考,請依實際情況設定)


參考資料

1. 尋找執行任何 Exchange 指令程式所需的權限 - Microsoft Docs