Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode usar o PowerShell para localizar as permissões necessárias para executar qualquer cmdlet do Exchange ou do Exchange Online. Este procedimento mostra as funções de gerenciamento de RBAC (controle de acesso baseado em função) e os grupos de função que lhe fornecem acesso a um cmdlet específico, mesmo que sua organização tenha funções personalizadas, grupos de funções personalizados ou atribuições de função personalizadas.
Dica
Atualmente, os procedimentos neste artigo não funcionam com cmdlets do Grupo do Microsoft 365 (*-UnifiedGroup) no Exchange Online PowerShell.
Do que você precisa saber para começar?
Tempo estimado para conclusão do procedimento: menos de cinco minutos.
Você só pode usar o PowerShell para executar esses procedimentos.
Os procedimentos neste artigo não funcionam no PowerShell de Segurança & Conformidade. Para obter mais informações sobre permissões de Segurança & Conformidade, consulte os seguintes artigos:
É necessário ter permissões atribuídas antes de executar os procedimentos descritos neste artigo. Você tem as seguintes opções:
Permissões do Exchange Server: Participação em um dos seguintes grupos de funções:
- Gerenciamento de Conformidade
- Gerenciamento de Higienização
- Organization Management
- View-Only Organization Management
Permissões do Exchange Online: Participação em um dos seguintes grupos de funções:
- Gerenciamento de Conformidade
- Configuração Delegada
- Gerenciamento de Higienização
- Organization Management
- View-Only Organization Management
Permissões do Microsoft Entra: a associação nas funções de Administrador Global* ou Leitor Global concede aos usuários as permissões necessárias e permissões para outros recursos do Microsoft 365.
Importante
* A Microsoft recomenda usar funções com o menor número possível de permissões. Usar contas com menos permissões ajuda a melhorar a segurança da sua organização. O Administrador Global é uma função altamente privilegiada que deve ser limitada a cenários de emergência quando não for possível usar uma função existente.
Usar o PowerShell para localizar as permissões necessárias para executar um cmdlet
Se ainda não o fez, abra o ambiente do PowerShell do Exchange no qual você está interessado:
- Exchange Online PowerShell: Conecte-se ao Exchange Online PowerShell.
- Exchange Server: Abra o Shell de Gerenciamento do Exchange ou Conectar-se a servidores Exchange usando o PowerShell remoto.
Substitua
<Cmdlet>e, opcionalmente,<Parameter1>,<Parameter2>,...pelos valores que você deseja usar e execute o seguinte comando:$Perms = Get-ManagementRole -Cmdlet <Cmdlet> [-CmdletParameters <Parameter1>,<Parameter2>,...]Dica
Se você especificar vários parâmetros, somente as funções que incluem todos os parâmetros especificados no cmdlet serão retornadas.
Execute o seguinte comando:
$Perms | foreach {Get-ManagementRoleAssignment -Role $_.Name -Delegating $false | Format-Table -Auto Role,RoleAssigneeType,RoleAssigneeName}
Interpretando os resultados
Os resultados contêm as seguintes informações:
Função: Indica a função que fornece acesso ao cmdlet ou à combinação de cmdlet e parâmetros. Os nomes de função que começam com "My" são funções de usuário que permitem que usuários comuns operem em objetos de sua propriedade (por exemplo, sua própria caixa de correio ou seus grupos de distribuição).
RoleAssigneeType e RoleAssigneeName: esses valores estão inter-relacionados:
- RoleAssigneeType é o tipo de objeto que tem a função atribuída a ele. Para funções de administrador, esse valor normalmente é um grupo de funções, mas também pode ser uma política de atribuição de função, um grupo de segurança ou um usuário.
- RoleAssigneeName é o nome do grupo de funções, política de atribuição de funções, grupo de segurança ou usuário.
Solução de problemas
E se não houver resultados?
- Verifique se os nomes de cmdlets e parâmetros foram inseridos corretamente.
- Vários parâmetros para um cmdlet podem não estar definidos em uma única função (alguns parâmetros podem estar em uma função, enquanto os outros estão em uma função diferente). Dê um passo de cada vez:
- Execute o primeiro comando sem parâmetros e, em seguida, execute o segundo comando.
- Adicione um parâmetro ao primeiro comando e execute o segundo.
- Repita a etapa anterior adicionando outros parâmetros ao primeiro comando antes de executar o segundo.
Caso contrário, nenhum resultado provavelmente será causado por uma das seguintes condições:
- O cmdlet ou os parâmetros são definidos em uma função que não é atribuída a nenhum grupo de funções por padrão.
- O cmdlet ou os parâmetros não estão disponíveis em seu ambiente. Por exemplo, você especificou um cmdlet do Exchange Online ou parâmetros do Exchange Online em um ambiente do Exchange local.
Para localizar as funções em seu ambiente (se houver) que contêm o cmdlet ou os parâmetros, substitua <Cmdlet> e, opcionalmente, <Parameter1>,<Parameter2>,... pelos valores que você deseja usar e execute o seguinte comando:
Get-ManagementRoleEntry -Identity *\<Cmdlet> [-Parameters <Parameter1>,<Parameter2>,...]
Dica
Você pode usar caracteres curinga (*) nos nomes de cmdlet e parâmetro (por exemplo, *-Mailbox*).
Se o comando retornar um erro dizendo que o objeto não foi encontrado, o cmdlet ou os parâmetros não estão disponíveis em seu ambiente.
Se o comando retornar resultados, o cmdlet ou os parâmetros estarão disponíveis em seu ambiente, mas a função necessária não será atribuída a nenhum grupo de funções. Para localizar funções que não estão atribuídas a nenhum grupo de funções, execute o seguinte comando:
$na = Get-ManagementRole; $na | foreach {If ((Get-ManagementRoleAssignment -Role $_.Name -Delegating $false) -eq $null) {$_.Name}}
Procedimentos relacionados
Incluir escopos de função de gerenciamento
Escopos de função de gerenciamento (em particular, escopos de gravação) definem onde os cmdlets podem operar. Por exemplo, toda a organização ou apenas em objetos de usuário específicos.
Para incluir informações de escopo na Usar o PowerShell para encontrar as permissões necessárias para executar uma saída de cmdlet , adicione *Scope* ao segundo comando:
$Perms | foreach {Get-ManagementRoleAssignment -Role $_.Name -Delegating $false | Format-List Role,RoleAssigneeType,RoleAssigneeName,*Scope*}
Para obter informações detalhadas sobre escopos de função de gerenciamento, consulte Noções básicas sobre escopos de função de gerenciamento.
Localizar todas as funções atribuídas a um usuário específico
Para ver todas as funções atribuídas a um usuário específico, substitua <UserIdentity> pelo nome, alias ou endereço de email do usuário e execute o seguinte comando:
Get-ManagementRoleAssignment -RoleAssignee <UserIdentity> -Delegating $false | Format-Table -Auto Role,RoleAssigneeName,RoleAssigneeType
Por exemplo:
Get-ManagementRoleAssignment -RoleAssignee julia@contoso.com -Delegating $false | Format-Table -Auto Role,RoleAssigneeName,RoleAssigneeType
Dica
O parâmetro RoleAssignee retorna atribuições de função diretas aos usuários (incomuns) e atribuições de função indiretas concedidas ao usuário por meio de sua associação em grupos de funções.
Localizar todos os usuários que têm uma função específica atribuída
Para ver todos os usuários que têm uma função específica atribuída a eles, substitua <Role name> pelo nome da função e execute o seguinte comando:
Get-ManagementRoleAssignment -Role "<Role name>" -GetEffectiveUsers -Delegating $false | Where-Object {$_.EffectiveUserName -ne "All Group Members"} | Format-Table -Auto EffectiveUserName,Role,RoleAssigneeName,AssignmentMethod
Por exemplo:
Get-ManagementRoleAssignment -Role "Mailbox Import Export" -GetEffectiveUsers -Delegating $false | Where-Object {$_.EffectiveUserName -ne "All Group Members"} | Format-Table -Auto EffectiveUserName,Role,RoleAssigneeName,AssignmentMethod
Localizar os membros de um grupo de função
Para ver os membros de um grupo de funções específico, substitua <Role group name> pelo nome do grupo de funções e execute o seguinte comando:
Get-RoleGroupMember "<Role group name>"
Por exemplo:
Get-RoleGroupMember "Organization Management"
Dica
Para ver os nomes de todos os grupos de funções disponíveis, execute Get-RoleGroup.