모든 Exchange cmdlet을 실행하는 데 필요한 사용 권한 찾기

PowerShell을 사용하여 Exchange 또는 Exchange Online cmdlet을 실행하는 데 필요한 사용 권한을 찾을 수 있습니다. 이 절차에서는 조직에 사용자 지정 역할, 사용자 지정 역할 그룹 또는 사용자 지정 역할 할당이 있는 경우 사용자에게 지정된 cmdlet에 대한 액세스 권한을 부여하는 RBAC(역할 기반 액세스 제어) 관리 역할 및 역할 그룹을 보여 줍니다.

현재 이 문서의 절차는 Exchange Online PowerShell의 Microsoft 365 그룹 cmdlet(*-UnifiedGroup)에서 작동하지 않습니다.

시작하기 전에 알아야 할 사항은 무엇인가요?

  • 이 절차의 예상 완료 시간: 5분 미만

  • PowerShell을 사용하여 이러한 절차만 수행할 수 있습니다.

  • 기본적으로 이 절차를 완료하려면 관리자여야 합니다. 특히 Get-managementroleGet-managementroleassignment cmdlet에 대한 액세스 권한이 필요합니다. 기본적으로 이러한 cmdlet에 대한 액세스 권한은 기본적으로 보기 전용 조직 관리 및 조직 관리 역할 그룹에만 할당되는 Exchange Online 보기 전용 구성 또는 역할 관리 역할에 의해 부여됩니다.

    클라우드 기반 조직에서 Microsoft Entra ID의 전역 관리자 역할 멤버 자격은 필요한 권한을 제공합니다.

  • 이 문서의 절차는 보안 & 규정 준수 PowerShell에서 작동하지 않습니다. 보안 & 규정 준수 권한에 대한 자세한 내용은 다음 문서를 참조하세요.

문제가 있습니까? Exchange 포럼에서 도움을 요청하세요. Exchange Server 또는 Exchange Online 포럼을 방문하세요.

PowerShell을 사용하여 cmdlet을 실행하는 데 필요한 사용 권한 찾기

  1. 아직 열려 있지 않은 경우 관심 있는 Exchange PowerShell 환경을 엽니다.

  2. 및 를 사용하려는 값으로 바꾸고 <Cmdlet> 필요에 <Parameter1>,<Parameter2>,... 따라 다음 명령을 실행합니다.

    $Perms = Get-ManagementRole -Cmdlet <Cmdlet> [-CmdletParameters <Parameter1>,<Parameter2>,...]
    

여러 매개 변수를 지정하는 경우 cmdlet에 지정된 매개 변수를 모두 포함하는 역할만 반환됩니다.

  1. 다음 명령을 실행합니다.

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

결과 해석

결과에는 다음 정보가 포함됩니다.

  • 역할: cmdlet 또는 cmdlet과 매개 변수의 조합에 대한 액세스를 제공하는 역할을 나타냅니다. "내"로 시작하는 역할 이름은 일반 사용자가 소유한 개체(예: 자신의 사서함 또는 메일 그룹)에서 작동할 수 있도록 하는 사용자 역할입니다.

  • RoleAssigneeTypeRoleAssigneeName: 이러한 값은 상호 관련되어 있습니다.

    • RoleAssigneeType 은 역할이 할당된 개체의 형식입니다. 관리자 역할의 경우 이 값은 일반적으로 역할 그룹이지만 역할 할당 정책, 보안 그룹 또는 사용자일 수도 있습니다.
    • RoleAssigneeName 은 역할 그룹, 역할 할당 정책, 보안 그룹 또는 사용자의 이름입니다.

문제 해결

결과가 없으면 어떻게 되나요?

  • cmdlet과 매개 변수 이름을 올바르게 입력했는지 확인합니다.
  • cmdlet에 대한 여러 매개 변수는 단일 역할에 정의되지 않을 수 있습니다(일부 매개 변수는 한 역할에 있을 수 있고 다른 매개 변수는 다른 역할에 있을 수 있습니다). 한 번에 한 단계씩 수행합니다.
    • 매개 변수 없이 첫 번째 명령을 실행한 다음 두 번째 명령을 실행합니다.
    • 첫 번째 명령에 매개 변수 하나를 추가한 다음 두 번째 명령을 실행합니다.
    • 두 번째 명령을 실행하기 전에 첫 번째 명령에 다른 매개 변수를 추가하여 이전 단계를 반복합니다.

그렇지 않으면 다음 조건 중 하나로 인해 결과가 발생하지 않을 수 있습니다.

  • cmdlet 또는 매개 변수는 기본적으로 역할 그룹에 할당되지 않은 역할에 정의됩니다.
  • cmdlet 또는 매개 변수는 사용자 환경에서 사용할 수 없습니다. 예를 들어 온-프레미스 Exchange 환경에서 Exchange Online cmdlet 또는 Exchange Online 매개 변수를 지정했습니다.

cmdlet 또는 매개 변수가 포함된 사용자 환경에서 역할을 찾으려면 및 를 사용하려는 값으로 바꾸고 <Cmdlet><Parameter1>,<Parameter2>,... 다음 명령을 실행합니다.

Get-ManagementRoleEntry -Identity *\<Cmdlet>  [-Parameters <Parameter1>,<Parameter2>,...]

cmdlet 및 매개 변수 이름(예 *-Mailbox*: )에서 와일드카드 문자(*)를 사용할 수 있습니다.

명령이 개체를 찾을 수 없다는 오류를 반환하는 경우 cmdlet 또는 매개 변수를 작업 환경에서 사용할 수 없는 것입니다.

명령이 결과를 반환하는 경우 cmdlet 또는 매개 변수는 사용자 환경에서 사용할 수 있지만 필요한 역할은 역할 그룹에 할당되지 않습니다. 역할 그룹에 할당되지 않은 역할을 찾으려면 다음 명령을 실행합니다.

$na = Get-ManagementRole; $na | foreach {If ((Get-ManagementRoleAssignment -Role $_.Name -Delegating $false) -eq $null) {$_.Name}}

관리 역할 범위 포함

관리 역할 범위(특히 쓰기 범위)는 cmdlet이 작동할 수 있는 위치를 정의합니다. 예를 들어 전체 organization 또는 특정 사용자 개체에만 해당합니다.

powerShell을 사용하여 cmdlet 출력을 실행하는 데 필요한 권한을 찾으려면 scope 정보를 포함하려면 두 번째 명령에 를 추가 *Scope* 합니다.

$Perms | foreach {Get-ManagementRoleAssignment -Role $_.Name -Delegating $false | Format-List Role,RoleAssigneeType,RoleAssigneeName,*Scope*}

관리 역할 범위에 대한 자세한 내용은 관리 역할 범위 이해를 참조하세요.

특정 사용자에게 할당된 모든 역할 찾기

특정 사용자에게 할당된 모든 역할을 보려면 를 사용자의 <UserIdentity> 이름, 별칭 또는 전자 메일 주소로 바꾸고 다음 명령을 실행합니다.

Get-ManagementRoleAssignment -RoleAssignee <UserIdentity> -Delegating $false | Format-Table -Auto Role,RoleAssigneeName,RoleAssigneeType

예를 들면

Get-ManagementRoleAssignment -RoleAssignee julia@contoso.com -Delegating $false | Format-Table -Auto Role,RoleAssigneeName,RoleAssigneeType

RoleAssignee 매개 변수는 사용자에게 직접 역할 할당(일반적이지 않음)과 역할 그룹의 멤버 자격을 통해 사용자에게 부여된 간접 역할 할당을 모두 반환합니다.

특정 역할이 할당된 모든 사용자 찾기

특정 역할이 할당된 <Role name> 모든 사용자를 보려면 를 역할 이름으로 바꾸고 다음 명령을 실행합니다.

Get-ManagementRoleAssignment -Role "<Role name>" -GetEffectiveUsers -Delegating $false | Where-Object {$_.EffectiveUserName -ne "All Group Members"} | Format-Table -Auto EffectiveUserName,Role,RoleAssigneeName,AssignmentMethod

예를 들면

Get-ManagementRoleAssignment -Role "Mailbox Import Export"  -GetEffectiveUsers -Delegating $false | Where-Object {$_.EffectiveUserName -ne "All Group Members"} | Format-Table -Auto EffectiveUserName,Role,RoleAssigneeName,AssignmentMethod

역할 그룹의 멤버 찾기

특정 역할 그룹의 멤버를 보려면 를 역할 그룹의 <Role group name> 이름으로 바꾸고 다음 명령을 실행합니다.

Get-RoleGroupMember "<Role group name>"

예를 들면

Get-RoleGroupMember "Organization Management"

사용 가능한 모든 역할 그룹의 이름을 보려면 를 실행합니다 Get-RoleGroup.