Microsoft lança um update para o Exchange 2003 para aliviar o evento 9548 – “user does not have a master account SID”.
Por: Viviane Lopes
Um dos eventos mais comuns encontrados em servidores Exchange 2000 ou 2003 é o evento 9548:
O evento acima indica que o serviço do “Information Store” encontrou a conta de usuário desabilitada denominada “Richard” , e o usuário em questão não possui o atributo msExchMasterAccountSid configurado.
Para simular este evento, basta desabilitar uma conta de usuário no “Active Directory” associada a uma caixa de correio no servidor Exchange 2000 ou 2003, e então enviar uma mensagem para este usuário. Se você não tiver o cuidado de configurar o msExchMasterAccountSid, o evento 9548 será informado no log de aplicações.
Na minha experiência como Engenheira de Suporte na Microsoft, a ausência do atributo msExchMasterAccountSid contribuiu para a abertura de inúmeros incidentes relacionados aos mais diversos tipos de problemas – má performance no servidor Exchange, popups de RPC no cliente Outlook, failovers inesperados, entre outros.
O que significa o atributo msExchMasterAccountSid ?
Quando o Exchange 2000 ou Exchange 2003 calcula as permissões de acesso a um determinado objeto, por exemplo, um “Public Folder”, existem duas possibilidades para o cálculo de tais permissões, dependendo de como a conta do usuário se encontra no Active Directory – habilitada ou desabilitada.
Se a conta de usuário estiver habilitada, as permissões são calculadas utilizando os atributos objectSID ou SIDHistory.
Se a conta de usuário estiver desabilitada, as permissões são calculadas utilizando o atributo msExchMasterAccountSid.
Em suma, a lógica para permitir acesso aos objetos do Exchange funciona da seguinte forma:
Usuário desabilitado – o Exchange consulta o msExchMasterAccountSid para determinar o SID e fornecer acesso aos objetos.
Usuários habilitado – o Exchange consulta o objectSID ou SIDHistory do usuário para fornecer acesso a objetos.
Desta forma, é necessário que o usuário desabilitado no Active Directory tenha o atributo msExchMasterAccountSid configurado para que o cálculo de permissões funcione corretamente. Seguindo a mesma lógica, o usuário habilitado não deve possuir o referido atributo.
Corrigir o problema é muito simples. Basicamente, após desabilitar uma conta de usuário no Active Directory associada a uma caixa postal no Exchange 2000 ou Exchange 2003, a única ação a ser tomada é atribuir a permissão de “Associated External Account” para SELF, conforme indicado no exemplo à seguir:
(Active Directory Users and Computers, propriedades do usuário, guia Exchange Advanced, Mailbox Rights”).
Diversos scripts customizados ou ferramentas como o NoMas (https://www.msexchange.org/articles/NoMAS-Tool.html) são utilizados pelos administradores para automatizar esta tarefa.
Mas se você utiliza servidores Exchange 2003, tudo isso é passado ...
A boa notícia é que o uso de scripts ou de ferramentas como o NoMas não é mais necessário em servidores Exchange 2003. Recentemente, a Microsoft lançou um hotfix para alterar este comportamento. A primeira versão deste hotfix está disponível através do artigo 903158.
903158 A hotfix is available to modify the way that Exchange Server 2003 handles a disabled Active Directory user account that is associated with an Exchange Server 2003 mailbox
https://support.microsoft.com/default.aspx?scid=kb;EN-US;903158
Após a instalação desta hotfix, o Exchange 2003 irá utilizar uma nova lógica para o cálculo das permissões, explicada à seguir:
01 – Se a conta de usuário estiver desabilitada e o atributo msExchMasterAccountSid estiver configurado para uma conta localizada em um domínio externo, então o msExchMasterAccountSid é o SID associado com a caixa de correio. (nenhuma alteração no comportamento original).
02 – Se a conta de usuário estiver desabilitada, e o atributo msExchMasterAccountSid não estiver configurado, então o Exchange irá utilizar o objectSID. A grande alteração no código do Exchange 2003 está aqui!
03 – Se o Exchange não conseguir determinar se a conta está habilitada ou desabilitada devido as permissões colocadas no objeto, ou se o Exchange não conseguir obter acesso ao atributo objectSID (problema também relacionado à permissões), então a operação irá falhar e o evento 9548 será informado no log de aplicações.
A conclusão é que à partir de agora, após a instalação do hotfix mencionado acima, a única forma do evento 9548 ser informado em um servidor Exchange 2003 é se existir um problema “real” com a conta de usuário associado a caixa postal.
Nota: o hotfix é válido apenas para servidores Exchange 2003 - servidores Exchange 2000 permanecem com o comportamento inalterado.