Como obter permissões de pasta de caixa de correio com SamAccountName ou UPN?

4

Eu preciso coletar e armazenar as permissões de pasta para cada pasta em cada caixa de correio do nosso sistema do Exchange. Eu já estou ciente do Cmdlet Get-MailboxFolderPermission , mas ele tem um problema sério.

Os objetos retornados por Get-MailboxFolderPermission são uma tupla de (User, AccessRights, FolderName). No entanto, a identidade "User" não é um objeto, é apenas uma string simples que representa o DisplayName de um usuário. (Edit: Isto estava incorreto. Veja resposta para detalhes.).

No entanto, nomes de exibição não são necessariamente exclusivos em uma implantação do Exchange. Em nossa floresta, existem mais de uma dúzia de caixas de correio que possuem nomes de exibição idênticos. Portanto, os resultados de Get-MailboxFolderPermission são ambíguos e não identificam exclusivamente um único usuário ou caixa de correio.

Como posso obter permissões em pastas de caixa de correio de maneira não ambígua? Gostaria de poder reatribuí-los mais tarde usando Add-MailboxFolderPermission , idealmente com o UPN.

    
por Nic 26.04.2013 / 22:16

1 resposta

1

Depois de mexer com isso por algumas horas, parece que eu estava errado. O cmdlet para obter permissões nas caixas de correio de pasta, na verdade, fornece tudo na propriedade User.ADRecipient .

Get-MailboxFolderPermission "username:\Foldername" |
  Foreach-Object {
    $_.User.ADRecipient.UserPrincipalName
  }

Descobri isso enviando os resultados usando Export-Clixml , que criou um arquivo XML muito grande. Agora sei que pode ser uma técnica útil para ver o que você realmente tem disponível.

    
por 27.04.2013 / 00:42