Usuários não conseguem enviar mensagens de email de um dispositivo móvel ou de uma caixa de correio compartilhada no Exchange 2000 Server e 2003 de Exchange Server

Traduções deste artigo Traduções deste artigo
ID do artigo: 912918 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Quando você tenta enviar uma mensagem de email no Microsoft Exchange 2000 Server ou no Microsoft Exchange Server 2003, você não pode enviar o email mensagem. Além disso, você pode receber uma das seguintes mensagens de erro ou um dos seguintes relatórios de não-entrega (NDRs).

Mensagens de erro

  • Acesso negado
  • Você não tem permissão suficiente para executar esta operação neste objeto. Consulte o contato da pasta ou do sistema administrador.
  • Mensagem não listada Erro
  • MAPI_E_NO_ACCESS -2147024891
  • Falha ao enviar email para usuário USERNAME (HRESULT: -2147024891) pausando usuário USERNAME. (Erro de segurança- Não é possível acessar a caixa de correio de usuários.)
  • Recurso não Encontrado
Observação Você recebe a mensagem de erro "Acesso negado" ou "recurso mensagem de erro não foi encontrado"do Microsoft Outlook Web Access quando você estiver conectado como um Delegar a conta.

NDRs

  • Você não tem permissão para enviar para este destinatário. Para assistência, contate o administrador do sistema.
  • A mensagem não pôde ser enviada usando sua caixa de correio. Fazer não tem permissão para enviar a mensagem em nome de usuário especificado.

Produtos afetados

Esse problema é conhecido por afetar o terceiros seguintes produtos:
  • Research In Motion (RIM) BlackBerry Enterprise Server (BES)
  • Boa Wireless GoodLink de tecnologia de mensagens
Esse problema também pode afetar personalizado MAPI ou colaboração de dados CDO (objetos)-programas que enviam mensagens de email.

Outros produtos de terceiros que usam contas de serviço para enviar mensagens de email também podem afetados. Se você estiver executando um produto de terceiros que é afetado por essa problema, recomendamos que você contate o fornecedor para obter ajuda sobre como resolver isso problema.

No entanto, foi confirmado que os seguintes fabricantes produtos não são afetados por esse problema:
  • Cisco Unity Unified Messaging
  • Quest Migration Suite para Exchange
  • O utilitário Microsoft ExMerge para Exchange

Causa

Esse problema pode ocorrer se uma das seguintes condições for verdadeiro:
  • Você não tem permissão para enviar mensagens de email como o proprietário de caixa de correio na conta que você está usando para enviar o email mensagem.
  • Executando o Microsoft Exchange 2000 Server Service Pack 3 (SP3) junto com uma versão do arquivo Store. exe é igual a ou posterior à versão 6619.4. Versão 6619.4 foi disponibilizada pela primeira vez no Microsoft seguinte Artigo do Knowledge Base:
    915358 Um hotfix está disponível para alterar o comportamento da permissão Full Mailbox Access no Exchange 2000 Server
  • Você está executando Microsoft Exchange Server 2003 SP1 junto com uma versão do arquivo Store. exe igual ou posterior à versão 7233.51.
  • Executando o Exchange Server 2003 SP2 em conjunto com um Store. exe versão do arquivo é igual a ou posterior à versão 7650.23. Versão 7650.23 foi disponibilizada pela primeira vez na Base dados de Conhecimento da Microsoft artigo:
    895949 Alteração do comportamento da permissão "Enviar como" no Exchange 2003
    Esta alteração não está incluída com o Exchange Server 2003 SP2. Se você estava executando a versão do arquivo Store. exe que inclui essa alteração Exchange Server 2003 SP1 e atualizar para Exchange Server 2003 SP2, você deve instalar a versão SP2 deste hotfix para manter o novo comportamento. Essa alteração será incluída no Microsoft Exchange Server 2003 SP3.

PREOCUPAÇÕES COM SEGURANÇA

Antes das versões do arquivo Store. exe listadas na "Causa" seção, concedendo a permissão Full Mailbox Access concedida implicitamente permissão Enviar como o proprietário da caixa de correio. Isso significava que outra conta que com Full Mailbox Access permissão poderia enviar emails que apareceu como se tivessem sido enviados pelo proprietário da caixa de correio.

Muitos Microsoft Exchange os clientes solicitaram que a permissão Enviar como ser separadas do total Permissão de acesso de caixa de correio por dois motivos a seguintes:
  • Para deter falsificação de email.
  • Para garantir que mensagens de email que são enviadas por um delegado pode sempre ser claramente distinguido de emails enviados pelo proprietário da caixa de correio reais.
Todas as novas versões do armazenamento do Exchange serão agora exigir explicitamente a permissão Enviar como para enviar emails como o proprietário da caixa de correio. Entretanto, a seguir lista as três exceções requisito:
  • A conta do proprietário da caixa de correio não exige Send explícita permissões para sua própria caixa de correio.
  • A conta externa associada de uma caixa de correio não exigir permissões Send As explícitas.
  • Uma conta de delegado também tem Full Mailbox Access permissão não requer permissões Send As explícitas.
Para obter mais informações sobre essas exceções, consulte "mais Seção de informações".

Resolução

Todas as contas que têm acesso parcial ou total para uma caixa de correio, exceto aqueles mencionados na seção "Causa", devem agora ser concedidas explicitamente a permissão Enviar como para a conta de proprietário de caixa de correio para enviar correio como o proprietário da caixa de correio. Isso inclui contas de serviço do aplicativo que realizam funções como enviar mensagens de email para usuários de dispositivos móveis.

A permissão Enviar como aplica-se a identidade de um objeto de usuário do Active Directory, não ao conteúdo de caixa de correio são armazenadas em um banco de dados. Portanto, a permissão Enviar como deve concedida à conta de serviço em cada objeto de usuário possui uma caixa de correio. Quando as mensagens de email são enviadas, elas não são enviadas de uma determinada caixa de correio ou banco de dados, mas de um usuário. O usuário pode ser o proprietário de caixa de correio ou qualquer outra conta que tenha a permissão Enviar como.

Não é possível conceder a permissão Enviar como em um servidor que esteja executando o Exchange Server ou em um objeto de banco de dados e obter o efeito de conceder a permissão Enviar como para todas as caixas de correio no banco de dados. Conceder a permissão Enviar como um objeto de banco de dados do Exchange lhe dá permissão para o próprio banco de dados. A permissão é herdada por todas as caixas de correio no banco de dados. No entanto, ele lhe dá permissão a usuários que têm permissões Enviar como e que têm caixas de correio no banco de dados.

Observação Conceder a permissão receber como em um banco de dados do Exchange é o equivalente funcional de conceder a permissão Full Mailbox Access para todas caixas de correio no banco de dados. Isso difere do comportamento de envio Como a permissão.

Como conceder permissões Enviar como para uma conta

Para conceder explicitamente outra permissão de conta para enviar como uma caixa de correio proprietário, siga estas etapas:
  1. Iniciar o gerenciamento de computadores e usuários do Active Directory console.
  2. Sobre o Modo de exibição menu, certifique-se de que oRecursos avançados opção é selecionada. Se essa opção não está selecionada, a página segurança não estará visível para a conta de usuário objetos.
  3. Abra as propriedades da conta de usuário que possui o caixa de correio.
  4. Clique no Segurança guia.
  5. Se a conta não estiver na lista de grupo ou usuário nomes, adicione a conta deve ter a permissão Send As para este usuário.
  6. No Permissões Clique no Permitir o "Enviar como" permissão para a conta adequada.
  7. Clique em OK.
  8. Reinicie o serviço Microsoft Exchange Information Store o servidor Exchange afetado.
Observação Se você não reiniciar o Microsoft Exchange Information Store serviço, o serviço Microsoft Exchange Information Store atualizará seu permissões de cache para tornar o novo efeito permissões de acordo com o valor é definido na seguinte subchave do registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem

Nome do valor: limite de idade de Cache da caixa de correio
Tipo do valor: REG_DWORD
Fracionário: Decimal
Dados do valor: O limite de idade de cache de informações da caixa de correio em minutos.
O valor padrão para essa entrada do registro é de 120 minutos (dois horas). Se você modificar essa entrada do registro, você deve reiniciar o Microsoft Serviço Exchange Information Store.

Observação Se você definir os valores de tempo limite para um valor muito baixo, você pode afeta o desempenho do servidor.

Como conceder a permissão Enviar como para várias contas

Um script de exemplo é fornecido no final deste artigo que pesquisará um domínio de serviço do Active Directory para contas que tenham a permissão Full Mailbox Access sem a permissão Enviar como para uma caixa de correio. Estas são as características de uma conta de serviço ou recurso que serão afetados por essa alteração de segurança. O script pode gerar um arquivo de exportação que revisar, editar e reimportar para conceder a permissão Enviar como para contas que exijam esta permissão.

Você também pode conceder a permissão Send As por herança em cada objeto de usuário em um domínio do Active Directory ou em um recipiente. Se você conceder a permissão Enviar como por esse método, você pode conceder permissões para objetos que não pretendia. Além disso, você pode perder as permissões para objetos retirados do contêiner. Portanto, esse método não é preferencial e pode ter implicações de segurança que devem ser consideradas cuidadosamente antes de implementá-lo.

Se você conceder a permissão Enviar como usando esse método, as contas que têm a permissão Send As herdada tornarão invisíveis para o script referenciado no final do artigo. Para processar essas contas usando o script em uma data posterior, você deve remover a permissão Send As herdada primeiro.

Para conceder a permissão Enviar como para uma única conta em todas as contas de usuário em um domínio do Active Directory ou contêiner usando herança, siga estas etapas:
  1. Iniciar o gerenciamento de computadores e usuários do Active Directory console.
  2. Sobre o Modo de exibição menu, certifique-se de que oRecursos avançados opção é selecionada. Se essa opção não está selecionada, a página segurança não estará visível para o domínio e contêiner objetos.
  3. Abra as propriedades do domínio ou recipiente e então Clique na página de segurança.
  4. Clique em Avançado.
  5. Se a conta que precisa de permissão não ainda estiver listado, Clique em Adicionare selecione a conta. Caso contrário, clique duas vezes a conta para edição.
  6. No Aplica-se em Clique emObjetos de usuário.
  7. Conceda a permissão Enviar como conta.
  8. Clique em OK até que você tenha saído e todas as alterações.

Regras especiais para contas protegidas por adminSDHolder

Se você usar o script para conceder a permissão Enviar como para um proprietário de caixa de correio que também é um administrador de domínio, a permissão Enviar como não será eficaz. É altamente recomendável que você não correio habilitar contas de usuário que tenha direitos de administrador de domínio ou que sejam protegidas por adminSDHolder.

O objeto adminSDHolder é um modelo para contas que tenham amplos direitos administrativos do Active Directory. Para impedir elevação autônoma de privilégios, qualquer conta protegida pelo objeto adminSDHolder deve ter permissões correspondentes estão listados no próprio objeto adminSDHolder .

Se você alterar os direitos ou as permissões no objeto adminSDHolder para uma conta protegida, uma tarefa em segundo plano irá desfazer a alteração dentro de alguns minutos. Por exemplo, se você conceder a permissão Enviar como um objeto de administrador de domínio para uma conta de serviço do aplicativo, a tarefa em segundo plano revogará automaticamente a permissão.

Portanto, você não pode conceder a permissão Enviar como para uma conta de serviço do aplicativo para uma conta protegida pelo objeto adminSDHolder , a menos que você alterar o próprio objeto adminSDHolder . Se você alterar o objeto adminSDHolder , irá alterar as permissões de acesso para todas as contas protegidas. Você deve alterar o objeto adminSDHolder somente após uma revisão completa das implicações de segurança que podem ocorrer com a alteração.

Para associar uma caixa de correio com uma conta que está protegida pelo objeto adminSDHolder , execute estas etapas:
  1. Iniciar o gerenciamento de computadores e usuários do Active Directory console.
  2. Sobre o Modo de exibição menu, certifique-se de que oRecursos avançados opção é selecionada. Se essa opção não está selecionada, a página segurança não estará visível para objetos de conta de usuário.
  3. Criar uma conta de usuário comum para atuar como a caixa de correio proprietário.
  4. Atribua a conta de usuário comum uma caixa de correio do Exchange servidor.
  5. Abra as propriedades da nova conta de proprietário de caixa de correio.
  6. No Exchange Advanced caixa, conceder a Permissão de acesso de caixa de correio completa administrador protegida conta.
  7. Na página segurança, conceda a permissão Enviar como para o conta de administrador protegida.
  8. Clique em OK para sair das propriedades da objeto de proprietário de caixa de correio.
  9. O objeto de conta de proprietário de caixa de correio, com o botão direito e, em seguida Clique em Desativar conta Para desativar a conta para todos os logons.
Para obter mais informações sobre protegidas por adminSDHolder contas, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
907434O "Enviar como" direito é removido de um objeto de usuário depois de configurar o direito "Enviar como" no Active Directory Users and Computers snap-in em Exchange Server
318180 Segmento AdminSDHolder afeta membros de grupos de distribuição
817433 As permissões delegadas não estão disponíveis e herança é desabilitada automaticamente
306398 Objeto AdminSDHolder afeta delegação de controle para contas de administrador antigas

Tarefas especiais para o BlackBerry Enterprise Server

Tarefa 1: Certifique-se de que o BlackBerry Enterprise Server está sendo executado como uma conta separada e exclusiva

Certifique-se de que o BlackBerry Enterprise Server está sendo executado como um Separe a conta que é criada especificamente para tarefas administrativas. Por padrão, essa conta é chamada de "BESAdmin".

Se você tiver um separado conta para administrar o BlackBerry Enterprise Server, vá para a tarefa 2.

Se você não tiver uma conta separada, crie uma conta separada. Em seguida, use essa conta para executar tarefas administrativas. Para obter instruções sobre como fazer isso se você estiver executando o BlackBerry Enterprise Server 4.0 ou o BlackBerry Enterprise Server 4.1, consulte o guia de instalação do BlackBerry Enterprise Server.  Para obter instruções sobre como fazer isso se você estiver executando o BlackBerry Enterprise Server 3.6, consulte o guia de introdução e instalação do BlackBerry Enterprise Server 2000/2003.

Tarefa 2: Verifique se a conta de serviço do BlackBerry Enterprise Server tem as permissões apropriadas

Verifique se tem a conta de serviço do BlackBerry Enterprise Server as permissões apropriadas.

Observação Se a conta estiver em um domínio, certifique-se de que a conta é um membro do grupo de usuários de domínio somente. Em um controlador de domínio, a conta deve ser membro do grupo Administradores internos.
  1. No BlackBerry Enterprise Server, execute essas etapas:
    1. Verifique se a conta é membro do Local Grupo de administradores.
    2. Atribuir "Logon local" e "Fazer logon como um serviço" permissões para a conta.
  2. Permissões de administrador somente para exibição do Grant Exchange no nível de grupo administrativo. Para fazer isso, siga estas etapas:
    1. Em Gerenciador do Sistema do Exchange, clique na primeira Exchange Server nome do grupo administrativo e clique em Representante Controle.
    2. Observe que o serviço BlackBerry Enterprise Server conta estiver listada como tendo a função de administrador somente para exibição do Exchange.
  3. Conceder "Enviar como," "Receber como" e "administrar informações Armazenar"permissões no nível do servidor para cada servidor Exchange. Fazer Isso, siga estas etapas:
    1. Em Gerenciador do Sistema do Exchange, clique na primeira Exchange Server nome do grupo administrativo e, em seguida, expanda o Servidores grupo.
    2. Um servidor Exchange com o botão direito, clique em Propriedadese clique em Segurança.
    3. No painel superior, selecione o BlackBerry Enterprise Conta de serviço do servidor. No painel inferior, verifique se o "Enviar como", "Receber como" e "Administer Information Store" permissões são definidas como Permitir.
    4. Repita as etapas 3b e 3C para cada Exchange servidor.
  4. Conceder "Enviar como," "Receber como" e "administrar informações Armazene"permissões para o armazenamento de caixa de correio. Para fazer isso, siga estas etapas:
    1. Em Gerenciador do Sistema do Exchange, clique na primeira Nome do grupo administrativo do Exchange e, em seguida, expanda o Servidores grupo.
    2. Expanda primeiro grupo de armazenamento de caixa de correio, clique com o botão direito cada armazenamento de caixa de correio, clique em Propriedadese clique em Segurança.
    3. No painel superior, selecione o BlackBerry Enterprise Conta de serviço do servidor. No painel inferior, verifique se o "Enviar como", "Receber como" e "Administer Information Store" permissões são definidas como Permitir.
    4. Repita as etapas 4b e c 4 para cada armazenamento de caixa de correio em cada Exchange server.
  5. No snap-in Active Directory Users and Computers, siga estas etapas:
    1. Clique com o botão direito do usuário que você deseja adicionar permissões para e clique em Propriedades.
    2. Sobre o Segurança Adicione o BlackBerry Enterprise Server conta de serviço e, em seguida, clique para selecionar o Enviar como caixa de seleção.
Se você não estiver executando Exchange Server 2003, consulte a tarefa 3.

Tarefa 3: Limpar o cache no BlackBerry Enterprise Server

Para limpar o cache de permissões no armazenamento do Exchange, reinicie serviços relacionados ao Blackberry e reinicie o informações do Microsoft Exchange Armazenamento. Depois de Reinicie o armazenamento do Exchange, você deve reiniciar os serviços relacionados ao RIM Blackberry para conceder à conta "BESAdmin" o recém-adicionado Send permissão no armazenamento do Exchange.

Mais Informações

Permissões de acesso de caixa de correio e pasta do Exchange são divididas entre os bancos de dados do Active Directory e o Microsoft Exchange. No entanto, ambos os tipos permissões são definidas no console de gerenciamento de usuário do Active Directory, mas permissões diferentes são armazenadas em dois locais separados.

Geralmente, Se uma permissão é definida na página segurança para um objeto, ele é um ativo Permissão de diretório. Se estiver definido em Exchange Advanced Mailbox Rights página, é uma permissão de banco de dados do Exchange.

O atributo do Active Directory msExchMailboxSecurityDescriptor é uma cópia de backup de um subconjunto dos direitos de caixa de correio efetivos. Ele é usado internamente pelo Exchange para uma variedade de finalidades. Além disso, o atributo msExchMailboxSecurityDescriptor é atualizado para corresponder aos direitos efetivos atuais se os administradores usem interfaces com suporte para atribuir direitos. No entanto, se o atributo msExchMailboxSecurityDescriptor for modificado diretamente por um administrador, as alterações não serão propagadas para o armazenamento do Exchange e as alterações não terão efeito. Não é garantido para ser sincronizado com os direitos de caixa de correio reais. Você não deve usar o atributo msExchMailboxSecurityDescriptor para ler ou gravar direitos de caixa de correio.
Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
310866Como definir direitos de caixa de correio Exchange Server 2003 e Exchange 2000 Server em uma caixa de correio que existe no armazenamento de informações

A permissão Full Mailbox Access é um Permissão de armazenamento de banco de dados do Exchange. A permissão Enviar como é um ativo Permissão de diretório. Antes das alterações de arquivo do Exchange Store. exe são descrito neste artigo, o sistema do Exchange não consultava a configuração para a permissão Enviar como se o remetente já tivesse Full Mailbox Access permissão.

A inclusão da permissão Enviar como com o Permissão do Full Mailbox Access permitiu aos administradores do Exchange server conceder a próprios permissões Send As efetivas para qualquer caixa de correio em um servidor que que eles administram. Por separando a permissão Enviar como da permissão Full Mailbox Access, Administradores do Active Directory podem bloquear esse processo porque enviar como a permissão é uma permissão do Active Directory e não um armazenamento do Exchange permissão. Portanto, o processo não é necessariamente sob o controle de Administradores do Exchange.

Proprietários de caixa de correio

Um proprietário de caixa de correio é definido como a conta de usuário do Active Directory cujo atributo msExchMailboxGUID carrega o identificador global exclusivo (GUID) para uma determinada caixa de correio. É permitida apenas uma conta em uma floresta inteira carregar o GUID de uma determinada caixa de correio. Se você tentar definir um segundo proprietário com o mesmo GUID, o Active Directory rejeitará a alteração com um erro.

Quando você ativa a caixa postal uma conta ou quando você conecta um desconectado caixa de correio a uma conta do Active Directory, a GUID da caixa de correio é definida automaticamente nessa conta. Ele é raramente necessário ou recomendado para administradores Defina GUIDs da caixa de correio diretamente.

Contas externas associadas

Uma configuração comum do Exchange é instalar o Exchange em um floresta de recursos. Uma floresta do recurso é uma floresta em uma floresta diferente de contas de usuário que terão caixas de correio no sistema. Isso apresenta um problema porque o atributo msExchMailboxGUID só pode ser definido em objetos na mesma floresta que o Exchange server.

A solução para esse problema é ativar a caixa de correio de um conta na floresta do servidor Exchange. Em seguida, vincular esta caixa de correio habilitada conta a uma outra floresta ou em um domínio do Microsoft Windows NT 4. Você pode fazer isto, concedendo a permissão Associated External Account. Um único conta pode ser concedido a permissão Associated External Account. A conta Isto é selecionada deve ser de uma floresta diferente.

Ao definir a associada Permissão conta externo, você está escrevendo o valor SID externos conta para o atributo msExchMasterAccountSID do proprietário da caixa de correio. Portanto, este não é um permissão de todos, mas uma maneira conveniente de controlar o valor do atributo msExchMasterAccountSID . Depois que o atributo msExchMasterAccountSID foi definido, a conta externa que possui o SID será concedido acesso ao Exchange como se fosse o proprietário de caixa de correio reais conta.

Observação Isso se aplica apenas ao acesso do Exchange, não para todos Acesso ao Active Directory. Além disso, você deve marcar o proprietário da caixa de correio conta como desativado para logons após você definir a conta externa associada permissão para que todas as permissões funcionam como esperado.
Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
300456Permissões e delegações cliente não persistem após serem atribuídas no Exchange 2000

Cenários de delegação

Um delegado é um usuário que tenha acesso parcial a outra caixa de correio e o direito de enviar mensagens de email em nome de correio proprietário. Um cenário de delegação comum é conceder acesso delegado a um Assistente administrativo para o calendário do executivo. O delegado pode normalmente ler e atualizar o calendário. Além disso, o delegado pode responder quaisquer mensagens de email em nome do executivo.

Você pode usar duas interfaces a seguir para conceder Send on Behalf Of e delegar permissões:
  • No objeto do proprietário da caixa de correio, conceda a enviar em nome de permissão no Exchange General caixa de diálogo.
  • No Microsoft Office Outlook, use o Representantes caixa de diálogo.
Esses dois métodos definir o atributo publicDelegates da caixa de correio. Todos os usuários que estão listados nesse atributo têm a enviar em nome de permissão do proprietário da caixa de correio. Quando esses delegados enviam um email com o nome do proprietário na Do caixa, a mensagem de email é enviada de delegado e não de ou como o proprietário da caixa de correio. A mensagem de email Do caixa exibe o seguinte valor:
Nome do representante> em nome deProprietário da caixa de correio>
Em alguns casos, talvez você não é possível definir o atributo publicDelegates no Outlook. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
329622Permissão "Send on behalf" não é atribuída a um usuário depois que você delega acesso no Outlook

Se você conceder acesso delegado à caixa de correio, o delegado pode usar a enviar em nome de permissão, mesmo se você não conceder acesso a qualquer uma das suas pastas de caixa de correio. A permissão fundamental que um delegado tem é enviar em nome de permissão. Permissões para acessar suas pastas de caixa de correio são separadas e devem ser concedidas com permissões de delegação. Normalmente, delegados usarão o Outlook para acessarem pastas individuais para o qual você deu permissão. Para fazer isso, clique em Aberto sobre o Arquivo menu do Outlook e clique em Pasta de outro usuário.

Como alternativa, delegados podem abrir a caixa de correio listando-a como uma caixa de correio adicional no Avançado Guia de seus perfis do Outlook. Este método faz sua caixa de correio aparecem na árvore de pastas do Outlook do delegado. Além disso, Este método permite acesso a todas as pastas de correio para o qual um delegado recebeu permissões.

Convém seu representante às vezes têm a enviar em nome de permissão e outras vezes o Permissão Enviar como. Para configurar um delegado com essas duas permissões, siga estas etapas:
  • Conceda ao delegado a permissão Full Mailbox Access. Isso não pode ser feito por meio do Outlook. Em vez disso, o administrador do Active Directory deve fazer isso na conta de proprietário de caixa de correio. Mesmo que você conceda permissões de proprietário no cada pasta de correio, que não é a mesma permissão como completo Permissão de acesso de caixa de correio.
  • Conceda ao delegado a permissão Enviar como. Se você Conceda ao delegado a permissão Enviar como, todas as mensagens de email enviadas por o representante será feito com a permissão Enviar como. O delegado não mais ser capaz de usar o enviar em nome de permissão.
Nessa situação, delegados que deseja usar o Send on Behalf Of permissão devem fazer logon suas próprias caixas de correio. Se os delegados são respondendo ou encaminhando uma mensagem de email que já está em um dos seus pastas, a mensagem de email automaticamente será enviada em nome de você. Se o criem uma nova mensagem de email em seu nome, digite seu nome no Do caixa de mensagem de email seja enviado em seu nome.

Independentemente dos delegados têm aberto suas pastas ou caixa de correio inteira como uma caixa de correio secundária, todos os emails que eles Enviar você usará o Send on Behalf Of desde que suas próprias permissões caixa de correio é a principal do perfil atual do Outlook.

Quando delegados desejarem enviar uma mensagem de email como você, eles devem fazer logon no seu caixa de correio usando um perfil do Outlook separado que abre apenas a caixa de correio. E-mail mensagens enviados enquanto estiverem conectados a esse perfil será automaticamente enviados por você.

Localizando contas que tenham a permissão Full Mailbox Access sem a permissão Enviar como

O script de exemplo descrito nessa seção pode pesquisar um Domínio de uma vez para contas de usuário do Active Directory onde a caixa de correio completa Foi concedida a permissão de acesso à caixa de correio sem a permissão Enviar como.

Importante Antes de alterar permissões, consulte o "Sobre proprietários de caixa de correio com delegados" seção.

O script tem os seguintes modos:
  • Exportação Você pode produzir uma lista de usuários que têm Full Mailbox Access permissão, mas não a permissão Send As. Você poderá revisar essa lista no Bloco de notas ou outro editor para remover quaisquer contas que não deseja ter a permissão Enviar como.
  • Importação Você pode importar uma lista de usuários que têm Full Mailbox Access permissão para quem também deve ser concedida a permissão Enviar como. Observe que você não é possível usar esse script para conceder a permissão de Full Mailbox Access e o Permissão Enviar como. Cada conta já deve ter Full Mailbox Access permissão para ser concedida a permissão Enviar como.
  • Definir tudo Você pode conceder a permissão Enviar como para todos os usuários no domínio quem já tem a permissão Full Mailbox Access para uma determinada caixa de correio. A arquivo de log será gerado no mesmo formato do arquivo de exportação. Isso é equivalente à execução modos exportação e importação sem editar o arquivo de exportação.
Observação Não há nenhuma função desfazer nesse script.

Permissões necessárias para o script

Você deve executar o script enquanto estiver conectado com uma conta administrativa que é a mesma floresta que o proprietário de caixa de correio as contas pertencem. O script pode não funcionar com uma conta que tenha permissões administrativas entre florestas. O script também não funcionem quando você Execute-o em uma estação de trabalho que tenha ingressada em uma floresta diferente da floresta para que as contas do proprietário da caixa de correio são unidas.

Dadas essas condições, você pode executar o script com várias contas administrativas em uma sessão de logon único usando o comando runas. exe . Este procedimento pode ser útil se ter segmentados permissões do Active Directory e Exchange Server, e não ter nenhuma conta única pode administrar todos os servidores Exchange ou todos Domínios do Active Directory. Você pode abrir um prompt de comando para executar o script como cada conta administrativa. Considere o exemplo a seguir:
Runas /user: domain\account CMD.EXE
Observação Você não deve executar várias cópias do script ao mesmo tempo no mesmo domínio.

Os campos no arquivo de exportação são como segue. Os campos são descritos na ordem em que são apresentados a arquivo de exportação.
  • Exibe o nome da conta do proprietário da caixa de correio

    Pode haver mais de uma linha na saída de arquivos que lista o mesmo proprietário de caixa de correio. Esse comportamento ocorre quando várias outras contas ter permissões Full Mailbox Access para a mesma caixa de correio.
  • Nome de logon e domínio de uma conta que tenha as permissões Full Mailbox Access, mas não a permissão Enviar como

    A mesma conta pode aparecer várias vezes ao longo o arquivo de exportação quando a conta tem acesso a várias caixas de correio. Isso é deve ser o caso para uma conta de serviço do aplicativo ou uma pessoa que gerencia várias caixas de correio de recurso.
  • Exibir o nome de uma conta que tenha a permissão Full Mailbox Access, mas não a permissão Enviar como

    Este campo é fornecido com o Nome de logoncampo para facilitar a identificação da conta.
  • Status de delegado do proprietário da caixa de correio

    Se o proprietário da caixa de correio tiver delegados, o valor do campo éTenha delegados. Se o proprietário da caixa de correio não tenha delegados, o valor do campo é Não Representantes.
  • Status habilitado ou desabilitado da conta do proprietário da caixa de correio

    Este campo é útil quando você deseja identificar recursos contas ou caixa de correio entre florestas. Normalmente, essas contas são desativado.
  • Full Distinguished Name da conta do proprietário da caixa de correio

    Este campo é útil quando você deseja identificar o domínio e o contêiner da conta do proprietário da caixa de correio.
  • Nome distinto completo do banco de dados de caixa de correio do proprietário da caixa de correio

    Este campo inclui o banco de dados, o grupo de armazenamento a servidor e o grupo administrativo da caixa de correio.
No exemplo a seguir, o usuário que tem o nome de logon "NoSendAs" tem a permissão Full Mailbox Access mas não a envie como permissão de caixa de correio "Mailbox Owner":
"" "Mailbox Owner" "" "" "Domain\NoSendAs" "" "" "não enviar como usuário" "" "" "tem delegados" "" "" "ativado" "" [campos adicionais omitidos]

Configuração de estação de trabalho administrativa para o script

Este script usa interfaces de gerenciamento do Exchange para se comunicar com servidores Exchange. Portanto, esse script deve ser executado de um Exchange servidor ou estação de trabalho com o Exchange System Administrator instalado.

Editando o arquivo de exportação

O arquivo de exportação é formatado como texto em Unicode sem formatação assim que conjuntos de caracteres de vários idiomas podem ser acomodados. Alguns editores de texto Talvez não possa exibir ou editar o arquivo corretamente ou pode salvar o arquivo como ANSI ou texto ASCII. O utilitário Bloco de notas para o Windows Server 2003, Windows XP e Microsoft Windows 2000 pode lidar corretamente com texto Unicode arquivos. Além disso, o Microsoft Office Excel consegue tratar corretamente texto Unicode arquivos.

O arquivo de saída está em um formato delimitado por tabulações com triplo aspas ao redor de valores para cada campo. Pontos de interrogação triplos são usados para fazer a importação e exportação do Excel mais determinísticas. Em Se o Excel, pontos de interrogação triplos tornará aspas simples e será revertidos para triplos quando o arquivo for novamente salvo como texto Unicode. Consulte as instruções a seguir para abrir e salvar um arquivo de exportação no corretamente Excel.

Você também pode filtrar um arquivo de exportação sem usar o Excel usando o utilitário Find ou o findstr. exe. Esses utilitários são incluído com o Windows. Eles permitem pesquisar palavras em um arquivo e saída apenas as linhas que contêm essas palavras ou apenas as linhas que não contêm Essas palavras. Por exemplo, se você quiser fazer uma lista no arquivo de todos os proprietários de caixa de correio que tenham delegados, usar esses comandos para criar um arquivo que contenha apenas linhas com a seqüência "Has Delegates":
Find "Has Delegates" OriginalFile.txt > HasDelegates

Findstr /c: "Has Delegates" OriginalFile.txt > HasDelegates
Como outro exemplo, suponha que você filtre todos os proprietários da caixa de correio com delegados. A opção /V exibe todas as linhas que não coincidem com as palavras de pesquisa. Você pode usar qualquer um desses comandos para gerar um arquivo que exclui todos os "tem Linhas de delegados":
Find "Nenhum representantes" OriginalFile.txt > NoDelegates.txt

Find /V "Has Delegates" OriginalFile.txt > NoDelegates.txt

Findstr /c: "Nenhum representantes" OriginalFile.txt > NoDelegates.txt

/C: do findstr. exe /V "tem delegados" OriginalFile.txt > NoDelegates.txt
Você também pode usar esses comandos para gerar um arquivo que lista todas as contas em que uma conta de serviço do aplicativo tem completo Permissão de acesso de caixa de correio, mas não tem a permissão Enviar como. A opção /I faz o comando diferencia maiúsculas de minúsculas:
Find /I "domain\ServiceAccount" OriginalFile.txt > ServiceAccount. txt

Findstr /I /c: "domain\ServiceAccount" OriginalFile.txt > ServiceAccount. txt
Observação Se você usar o utilitário Find para gerar um arquivo filtrado, remover as linhas de cabeçalho que o utilitário Find irá criar na parte superior do arquivo.

Fazer Não use nomes de arquivo curinga (*. *) com o utilitário findstr. exe. Se você usar caracteres curinga, cada linha no arquivo de saída será precedida pelo nome do arquivo. Você deve Examine o arquivo de saída com cuidado depois de filtrar usando Find ou Findstr. exe para verificar que o Filtro capturou ou excluiu as contas que você o objetivo.

No exemplo a seguir, o usuário que tem o nome de logon "NoSendAs" tem a permissão Full Mailbox Access, mas não a envie como permissão de caixa de correio "Mailbox Owner".
"""Mailbox Owner""" """Domain\NoSendAs""" """No Send As User""" """Has Delegates""" """Enabled""" [additional fields omitted] 

Sobre proprietários de caixa de correio com delegados

Um delegado com Full Mailbox Access (também conhecido como um "super-delegado") geralmente não deve receber a permissão Send As. Quando o logs super-delegado diretamente a caixa de correio do proprietário da caixa de correio, o delegado pode enviar como o proprietário. Quando o delegado usa (de recursos de delegação do OutlookAdicionais Caixas de correio para abrir ou Abra a pasta de outro usuário), as mensagens são enviadas em nome do proprietário.

Conceder a permissão Send As a um super-delegado apenas se você quiser a delegado sempre enviar como o proprietário da caixa de correio e nunca enviar em nome da proprietário da caixa de correio. Recomendamos que você procurar o arquivo de exportação para o texto "tem Representantes"e determinar se qualquer um dos super-delegados que estão Na verdade, os delegados do proprietário da caixa de correio são listados.

Apenas super-delegados são listados no arquivo de exportação. Delegados comuns não têm a permissão Full Mailbox Access. Além disso, quando você concede a permissão Enviar como para um delegado comum, o delegado sempre enviará como o proprietário da caixa de correio. Isso é verdadeiro mesmo quando o delegado comum não tem a permissão Full Mailbox Access. Se você conceder permissões Send As a um delegado quando você não pretende, Você pode facilmente revogar a permissão posteriormente.

Como abrir um arquivo de exportação no Excel

  1. Inicie o Excel antes de abrir o arquivo de exportação.
  2. Abra o arquivo no Excel como tipo arquivos de texto. Inicia o Assistente para importação de texto.
  3. No Assistente de importação de texto, altere ou aceite o seguinte configurações:
    • Tipo de dados original: Delimitado
    • Iniciar importação na linha: 1
    • Origem do arquivo: Unicode (UTF-8)
    • Delimitadores: Guia somente
    • Considerar delimitadores consecutivos como um: desmarcados
    • Qualificador de texto: "(aspas duplas)

Como salvar um arquivo de exportação depois de editar o arquivo no Excel

  1. No arquivo de exportação, clique em Salvar como.
  2. Salve o arquivo usando um nome diferente para que você preserve uma cópia não editada do arquivo original.
  3. Clique em Arquivo, clique em Salvar como, digite um nome de arquivo para salvar a saída e clique em Texto Unicode no Salvar como tipo lista.

Sintaxe do script

Este é um script de modo de texto e deve ser executado em um comando janela, não a partir do prompt de Executar caixa de diálogo. Para abrir um comando janela do prompt, clique em Início, clique em Executar, tipo CMD no Aberto caixa e clique OK.

Log de erros e exportar os arquivos serão salvos para o diretório atual do prompt de comando. Você deve ter permissões para criar arquivos Este diretório. Para obter ajuda de linha de comando, digite o seguinte comando:
CSCRIPT AddSendAs.vbs
Para exportar usuários que tenham Full Mailbox Access sem a permissão Send As para um domínio, digite o seguinte comando:
CSCRIPT AddSendAs.vbs [domain controller name] ?Export
Example:
CSCRIPT AddSendAs.vbs CORP-DC-1 ?Export
O arquivo de exportação será gerado como "Send_As_Export_H_MM_SS. txt".

Para importar um arquivo de exportação editado, digite o seguinte comando:
CSCRIPT AddSendAs.vbs [domain controller name] ?Import [filename]


Example:


CSCRIPT AddSendAs.vbs CORP-DC-1 ?Import "Send_As_Export_H_MM_SS.txt"

Como conceder a permissão Enviar como para cada caixa de correio no domínio para todos os usuários que já tenham a permissão Full Mailbox Access para uma caixa de correio

Observação Se você tiver delegados que também tenham Full Mailbox Access permissão de sua organização, você não deve usar o modo Definir tudo. Se você fizer usar o modo Definir tudo nessa situação, delegados receberão a enviar como permissão. Esse comportamento pode fazer com que todas as mensagens que enviam para usar a permissão enviado como em vez de enviada em nome de permissão. Você pode corrigir esse comportamento, removendo a permissão Enviar como que foi por engano concedido para o delegado:
CSCRIPT AddSendAs.vbs [domain controller name] ?SetAll


Example:


CSCRIPT AddSendAs.vbs CORP-DC-1 ?SetAll
Se você usar o modo Definir tudo, um arquivo de exportação será gerado como Send_As_Export_H_MM_SS. Você deve salvar este arquivo porque ele é um registro de todas as contas que foram alteradas. Se você fosse executar o script novamente, ele não produziria a mesma lista de contas porque o contas seriam já receberam a permissão Enviar como.

Erros que ocorrer enquanto você estiver executando o script será salva o arquivo Send_As_Errors_H_MM_SS. O nome do arquivo de erro corresponderá o carimbo de hora em horas_minutos_segundos de qualquer arquivo de exportação associado.

Modificações de script

Talvez haja contas na organização que têm permissões em muitos objetos, mas não deseja alterar as permissões. Para reduzir a tamanho do arquivo de exportação, você pode filtrar essas contas, modificando o Variável FMA_EXCLUSIVE_LIST localizada que está localizado no topo do script. Por padrão, essa variável lista algumas contas que devem ser suprimidas no saída do script. Você pode adicionar mais contas usando o seguinte formato.
& "<Domain\Name>" & OUTPUT_DELIMITER
Por exemplo, você pode alterar o valor da variável a seguir.
FMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "NT AUTHORITY\SELF" & OUTPUT_DELIMITER & "NT AUTHORITY\SYSTEM" & OUTPUT_DELIMITER
para que ele apareça.
FMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "NT AUTHORITY\SELF" & OUTPUT_DELIMITER & "NT AUTHORITY\SYSTEM" & OUTPUT_DELIMITER & "Mydomain\Service1" & OUTPUT DELIMITER
Esta alteração suprime a listagem da conta "Mydomain\Service1" em o arquivo de exportação junto com "NT AUTHORITY\SELF" e "NT AUTHORITY\SYSTEM". Observe que o valor Domain\Name diferencia e que deve aparecer exatamente como ele faz ou como faria no arquivo de exportação.

Há outro variável editável, FMA_EXCLUSIVE_EXSVC com o valor padrão "\Exchange Serviços de"& OUTPUT_DELIMITER. "Exchange Services" são o nome de uma conta que é concedido permissões através do Active Directory Connector no Exchange Servidor 5.5 e cenários de coexistência e migração do Exchange 2000. Essa conta é criada em vários domínios e ele pode ser exibida repetidamente no arquivo de exportação se não é suprimida.

A variável FMA_EXCLUSIVE_EXSVC aceita apenas uma conta como seu valor. O nome da conta não diferencia maiúsculas de minúsculas. A conta deve começar com um caractere de barra invertida (\) e não deve incluir o domínio ao qual pertence a conta. A conta será suprimida para todos domínios em que ele existe.

Se você tiver usado a migração de terceiros ferramentas ou métodos de sincronização de diretório, pode existir uma conta diferente no vários domínios com permissões concedidas amplamente caixas de correio do usuário. Neste cenário, você pode substituir o nome da conta para "\Exchange Services".

Dicas e advertências

  • Não descarte os arquivos de log e o erro gerados pelo o script. Eles podem ser importantes para a solução de problemas ou reverter alterações mais tarde. Lembre-se, assim que tiver concedido a permissão Enviar como para uma conta, não mais serão registrado no arquivo de exportação.
  • Se um servidor Exchange ou banco de dados estiver inoperante, o processamento de scripts será mais lento. Nesse caso, você pode classificar o arquivo de exportação por banco de dados e mover as linhas que estão associadas um banco de dados parado para um arquivo diferente para posterior Importe.
  • O script suprime a saída de contas em que o logon nome termina em "$" ou seja NT AUTHORITY\SYSTEM.. Essas contas de sistema não devem normalmente precisa enviar como permissão e removê-los do arquivo de exportação reduz consideravelmente seu tamanho.
  • O arquivo de exportação deve estar no formato Unicode antes de ele ser importado. Se você salvou o arquivo como texto ANSI acidentalmente, você pode resolver esse problema ao carregar o arquivo no bloco de notas e salvando-o como Unicode texto.
  • Se a importação não está funcionando, solucione o problema com contas de teste e uma única linha no arquivo de importação. Você deve configurar um teste de conta que tem uma caixa de correio em um servidor Exchange em execução e conceda a permissão Full Mailbox Access para outra conta de teste. Não conceda a permissão Enviar como à conta de teste.
  • Não há nenhum modo Desfazer para esse script. Para retirar o Enviar como permissões concedidas por esse script, você deve gerar outro script ou removê-los manualmente. Não é fornecido um modo Desfazer para evitar o uso desse script para remover as permissões Enviar como para todos os usuários em um organização.
  • O script não manipula corretamente uma conta que tenha foi concedido controle total de um objeto de usuário com Full Mailbox Access. Controle total inclui a permissão Send As, mas o script exportará a conta como se não tivesse a permissão Enviar como. Isso pode aumentar o tamanho do o arquivo de exportação, mas nenhum dano ocorre da importação do arquivo e, em seguida redundante conceder permissões Enviar como para tais contas.
  • Contas de usuário Active Directory que tem distintos nomes e que incluem tabulações ou aspas não coincidentes não pode ser processados usando esse script. O script pode processar corretamente um nome que inclui correspondente entre aspas duplas, como:
    "CN ="Apelido"primeiro último DC = domain, DC = com"
  • Cada versão do Excel oferece suporte a um limite máximo de linha diferentes. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
    120596Arquivos de texto maiores que 65.536 linhas não podem ser importados para o Excel 97, Excel 2000, Excel 2002 e Excel 2003
    Estes são os limites de linha para Excel 2003 e Excel 2007:
    • Linhas do Excel 2003: 65.536
    • Linhas do Excel 2007: 1.048.576
    Se o arquivo de saída for maior que esses limites, você deverá dividir o arquivo em seções antes de carregá-lo no Excel.
  • O arquivo Send_As_Errors listará contas específicas onde Houve uma falha de leitura ou permissões de gravação. Se outras contas na domínio foram processados corretamente, essas contas podem ter algo em comum que impede que o script executado com elas. Problemas comuns incluem o a seguir:
    • Falta de permissões administrativas para exibir ou definir Propriedades das contas.
    • O armazenamento de caixa de correio do Exchange não está executando.
    • A estação de trabalho não é um membro do mesmo domínio.
    • Não é a conta administrativa que está sendo usada da mesma floresta.
Para executar esse script, copie e cole todas as linhas entre BEGIN SCRIPT e END SCRIPT em um editor de texto sem formatação como o bloco de notas. Salve o script como AddSendAs. vbs. BEGIN SCRIPT.
Option Explicit

Dim OUTPUT_DELIMITER
OUTPUT_DELIMITER = """""""" & vbTab & """"""""

'Define exclusive list, if FMA is given to any user in this list, it's ignored.  If you 
'want to modify this list, please be sure to follow the same format. Every alias has to 
'have a OUTPUT_DELIMITER before and after it
Dim FMA_EXCLUSIVE_LIST
FMA_EXCLUSIVE_LIST = OUTPUT_DELIMITER & "NT AUTHORITY\SELF" & OUTPUT_DELIMITER & "NT AUTHORITY\SYSTEM" & OUTPUT_DELIMITER
Dim FMA_EXCLUSIVE_EXSVC
FMA_EXCLUSIVE_EXSVC = "\Exchange Services" & OUTPUT_DELIMITER

'Permission Type: Allow or Deny
const ACCESS_ALLOWED_OBJECT_ACE_TYPE  = 5
const ADS_ACETYPE_ACCESS_ALLOWED = &h0
const ADS_ACETYPE_ACCESS_DENIED = &h1

'Flags: Specifies Inheritance
const ADS_ACEFLAG_INHERIT_ACE = &h2
const ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE = &h4
const ADS_ACEFLAG_INHERIT_ONLY_ACE = &h8
const ADS_ACEFLAG_INHERITED_ACE = &h10
const ADS_ACEFLAG_VALID_INHERIT_FLAGS = &h1f
const ADS_ACEFLAG_SUCCESSFUL_ACCESS = &h40
const ADS_ACEFLAG_FAILED_ACCESS = &h80

'Declare ADSI constants
Const ADS_OPTION_SECURITY_MASK = 3
Const ADS_OPTION_REFERRALS	= 1
Const ADS_SECURITY_INFO_DACL = 4
Const ADS_CHASE_REFERRALS_NEVER = &h00 
Const ADS_CHASE_REFERRALS_SUBORDINATE = &h20 
Const ADS_CHASE_REFERRALS_EXTERNAL = &h40

'output file name
Const EXPORT_FILE = "Send_As_Export"
Const ERROR_FILE = "Send_As_Errors"

' script mode
const MODE_INVALID = -1 
const MODE_SETALL = 0
const MODE_EXPORT = 1
const MODE_IMPORT = 2
const SETALL = "-SETALL"
const EXPORT = "-EXPORT"
const IMPORT = "-IMPORT"

' argument index
Const ARG_INDEX_MODE = 1
Const ARG_INDEX_DC = 0
Const ARG_INDEX_FILENAME = 2

' column index in import/export file
Const COLUMN_INDEX_USERDISPLAYNAME = 0
Const COLUMN_INDEX_FMAALIAS = 1
Const COLUMN_INDEX_FMADISPLAYNAME = 2
Const COLUMN_INDEX_IFPUBLICDELEGATE = 3
Const COLUMN_INDEX_MAILBOXSTATUS = 4
Const COLUMN_INDEX_USERADSPATH = 5
Const COLUMN_INDEX_HOMEMDB = 6

Const EMPTYSTRING = ""
Const STRNO = "No Delegates"
Const STRYES = "Has Delegates" 
Const MIN_ARG = 2
Const INIT_ARRAY_SIZE = 100

' Microsoft Exchange 
Const EX_MB_SEND_AS_ACCESSMASK  = &H00100
Const EX_FULLMailbox_AccessMask = 1
Const MESO = "Microsoft Exchange System Objects"
Const EX_MB_SEND_AS_GUID = "{AB721A54-1E2F-11D0-9819-00AA0040529B}"

Const ForReading	= 1
Const ForWriting	= 2
Const ForAppending	= 8
Const TristateTrue	= -1
Const ADS_SCOPE_SUBTREE = 2

Dim objUser
Dim objSDMailBox
Dim objSDNTsecurity
Dim objDACLNTSD
Dim objNewACE

Dim sTrusteeAlias()
Dim sFMADeniedList
Dim sFMAExplicitAllow
Dim fACESendasFound
Dim dArraySize
Dim TotalACE
Dim i
Dim rootDSE
Dim conn
Dim objCommand
Dim objCmdDisplayName
Dim rsUsers
Dim FoundObject
Dim objFSO
Dim objfileImport
Dim objfileExport
Dim objfileError
Dim sImportFilePath
Dim cScriptMode
Dim dArgCount
Dim dArgExpected
Dim sDCServer
Dim sMailboxStatus
Dim sIfPublicDelegate
Dim sFMAUserDisplayName
Dim sExportFileName
Dim sErrorsFileName
Dim msPublicDelegates
Dim fError
Dim fOneError
Dim fFMAAllowed

On Error Resume Next
dArraySize = INIT_ARRAY_SIZE
ReDim Preserve sTrusteeAlias(dArraySize)

dArgCount = Wscript.Arguments.Count 
If ( dArgCount < MIN_ARG ) Then
	DisplaySyntax
End If

err.Clear
fError = False
fOneError = False
cScriptMode = MODE_INVALID
Select Case UCase(WScript.Arguments(ARG_INDEX_MODE))
	Case SETALL 
		cScriptMode = MODE_SETALL
		dArgExpected = ARG_INDEX_MODE + 1
	Case EXPORT 
		cScriptMode = MODE_EXPORT
		dArgExpected = ARG_INDEX_MODE + 1
	Case IMPORT 
		cScriptMode = MODE_IMPORT
		dArgExpected = ARG_INDEX_FILENAME + 1
	Case Else 
		cScriptMode = MODE_INVALID
End Select
If (cScriptMode = MODE_INVALID Or dArgCount <> dArgExpected) Then
	DisplaySyntax
End If

sDCServer = WScript.Arguments(ARG_INDEX_DC)

CreateOutputFiles

If ( cScriptMode = MODE_SETALL Or cScriptMode = MODE_EXPORT ) Then
	Dim sDomainContainer
	If (cScriptMode = MODE_SETALL) Then
		Dim strInput 
		WScript.StdOut.WriteLine("WARNING: If you continue, each account in the domain that has")
		WScript.StdOut.WriteLine("Full Mailbox Access permission for a given mailbox will also be")
		WScript.StdOut.WriteLine("granted permission to Send As the mailbox owner.")
		WScript.StdOut.WriteLine()
		WScript.StdOut.WriteLine("To preview the list of mailboxes before granting Send As,")
		WScript.StdOut.WriteLine("cancel this operation and use the -Export mode of this script.")
		WScript.StdOut.WriteLine()
		WScript.StdOut.Write("Press Y to continue or any other key to cancel: ")
		strInput = WScript.StdIn.ReadLine()
		If (UCase(strInput) <> UCase("Y")) Then
			WScript.Quit
		End If	
	End If
	
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("""!"" indicates an error processing an object.")
	WScript.StdOut.WriteLine("     Check " & sErrorsFilename)
	WScript.StdOut.WriteLine("Starting...")
	WScript.StdOut.WriteLine()

	err.Clear	
	Set rootDSE = GetObject("LDAP://" & sDCServer & "/RootDSE")
	sDomainContainer = rootDSE.Get("defaultNamingContext")
	WScript.StdOut.WriteLine("Finding domain controller [ " & sDCServer & " ] for domain [ " & sDomainContainer & " ]")
	
	If (err.number <> 0) Then
		WScript.StdOut.WriteLine("Failed to find the domain or domain controller, error:" & err.Description)
		objfileError.WriteLine("Failed to find the domain or domain controller, error:" & err.Description)
		WScript.Quit
	End If
			
	err.Clear	
	Set conn = CreateObject("ADODB.Connection")
	Set objCommand = CreateObject("ADODB.Command")
	conn.Provider = "ADSDSOObject"
	conn.Open "ADs Provider"
	If (err.number <> 0) Then
		WScript.StdOut.WriteLine("Failed to bind to Active Directory server, error:" & err.Description)
		objfileError.WriteLine("Failed to bind to Active Directory server, error:" & err.Description)
		WScript.Quit
	End If

	Set objCommand.ActiveConnection = conn
	WScript.StdOut.WriteLine("Searching for mailbox owner user accounts in " & sDomainContainer)
	
	objCommand.CommandText  = "<LDAP://" & sDCServer & "/" & sDomainContainer & ">;(&(&(& (mailnickname=*) (| (&(objectCategory=person)(objectClass=user)(msExchHomeServerName=*)) ))));adspath;subtree"
	objCommand.Properties("searchscope") = ADS_SCOPE_SUBTREE
	objCommand.Properties("Page Size") = 100
	objCommand.Properties("Timeout") = 30 
	objCommand.Properties("Chase referrals") = (ADS_CHASE_REFERRALS_SUBORDINATE Or ADS_CHASE_REFERRALS_EXTERNAL)

	err.Clear	
	Set rsUsers = objCommand.Execute
	If (err.number <> 0) Then
		WScript.StdOut.WriteLine("Search for mailbox owners failed, error:" & err.Description)
		objfileError.WriteLine("Search for mailbox owners failed, error:" & err.Description)
		WScript.Quit
	End If

	If (rsUsers.RecordCount = 0) Then
		WScript.StdOut.WriteLine("No mailbox owner user accounts could be seen in " & sDomainContainer & ".")
		objfileError.WriteLine("No mailbox owner user accounts found in " & sDomainContainer & ".")
		fError = True		
	End If

	While Not rsUsers.EOF
		If (fOneError = True) Then
			WScript.StdOut.Write("!")
		Else
			WScript.StdOut.Write(".")
		End If
		fOneError = False
		
		'Skip any mailbox object in Microsoft Exchange System Objects container
		If (0 = Instr(rsUsers.Fields(0).Value, MESO)) Then
			err.Clear 
			Set objUser = GetObject(rsUsers.Fields(0).Value)
			If (err.number <> 0) Then
				objfileError.WriteLine("Failed to get user object: " & rsUsers.Fields(0).Value)
				objfileError.WriteLine("Error: " & err.Description)
				fError = True
				fOneError = True
				err.Clear
			End If
			Set objSDMailBox = objUser.MailboxRights
			If (err.number <> 0) Then
				objfileError.WriteLine("Failed to get mailbox rights: " & rsUsers.Fields(0).Value)
				objfileError.WriteLine("Error: " & err.Description)
				fError = True
				fOneError = True
				err.Clear
			End If
			Set objSDNTsecurity = objUser.ntSecurityDescriptor
			If (err.number <> 0) Then
				objfileError.WriteLine("Failed to get NTSD: " & rsUsers.Fields(0).Value)
				objfileError.WriteLine("Error: " & err.Description)
				fError = True
				fOneError = True
				err.Clear
			End If
			
			Set objDACLNTSD = Nothing
			If (objUser.AccountDisabled) Then
				sMailboxStatus = "Disabled"
			Else
				sMailboxStatus = "Enabled"
			End If

			'Query this user's publicDelegates list
			err.Clear 
			msPublicDelegates = objUser.Get("publicDelegates")
			If (err.number <> 0) Then
				'This user doesn't have publicDelegates list set
				sIfPublicDelegate = STRNO
				err.Clear
			Else
				sIfPublicDelegate = STRYES
			End If
			
			err.Clear 			
			FindAllFMAUsers objSDMailBox
			
			If (TotalACE > dArraySize) Then
			'Needs to allocate bigger size array
				dArraySize = TotalACE + 1
				ReDim Preserve sTrusteeAlias(dArraySize)
				FindAllFMAUsers objSDMailBox
			End If
			If (err.number <> 0) Then
				objfileError.WriteLine("Failed to query mailbox rights of user: " & rsUsers.Fields(0).Value)
				objfileError.WriteLine("Error: " & err.Description)
				err.Clear
				fError = True
				fOneError = True
			End If
			
			If TotalACE > 0 Then
				Set objDACLNTSD = objSDNTsecurity.DiscretionaryAcl

				For i = 0 to TotalACE - 1 Step 1
					
					'Check if we already have Send As ACE in NT security descriptor
					'If it exists, either allow or deny, we don't need to add send as to it 
					CheckSendAsACE objDACLNTSD, sTrusteeAlias(i)
					
					'Note: deny entries take precedence over allow entries. 
					'If there is FMA deny ACE, skip it even if we find FMA allow ACE 
					IfFMAAllowed(sTrusteeAlias(i) & OUTPUT_DELIMITER)
					If ((fFMAAllowed = True) And (fACESendasFound = 0)) Then
						If cScriptMode = MODE_SETALL Then
							Set objNewACE = CreateObject ("AccessControlEntry")
							objNewACE.AceFlags = 0 
							objNewACE.AceType = ACCESS_ALLOWED_OBJECT_ACE_TYPE
							objNewACE.AccessMask = EX_MB_SEND_AS_ACCESSMASK 
							objNewACE.Flags = 1
							objNewACE.ObjectType = EX_MB_SEND_AS_GUID
							objNewACE.Trustee = sTrusteeAlias(i)

							objDACLNTSD.AddAce objNewAce
						End If
			
						'Query trustee(FMA user) to get its displayName
						Dim rsTrustee
						Dim objTrustee
						Dim dPosition
						Dim sAlias
					
						dPosition = inStr(1, sTrusteeAlias(i), "\")
						sAlias = mid(sTrusteeAlias(i), dPosition + 1)
				
						Set objCmdDisplayName = CreateObject("ADODB.Command")			
						Set objCmdDisplayName.ActiveConnection = conn
						objCmdDisplayName.CommandText  = "<LDAP://" & sDomainContainer & ">;(&(&(& (mailnickname=" & sAlias & ") (| (&(objectCategory=person)(objectClass=user)(msExchHomeServerName=*)) ))));adspath;subtree"
						objCmdDisplayName.Properties("searchscope") = ADS_SCOPE_SUBTREE
						objCmdDisplayName.Properties("Page Size") = 100
						objCmdDisplayName.Properties("Timeout") = 30 
						objCmdDisplayName.Properties("Chase referrals") = (ADS_CHASE_REFERRALS_SUBORDINATE Or ADS_CHASE_REFERRALS_EXTERNAL)
						
						Set rsTrustee = objCmdDisplayName.Execute				
						Set objTrustee = GetObject(rsTrustee.Fields(0).Value)
						
						If (err.number <> 0) Then
							'Failed to query FMA user's display name, use its alias
							sFMAUserDisplayName = sAlias							
						Else
							sFMAUserDisplayName = objTrustee.displayName							
						End If
	
						'output to export file
						err.Clear
						objfileExport.WriteLine ("""""""" & objUser.displayName & OUTPUT_DELIMITER & sTrusteeAlias(i) & OUTPUT_DELIMITER & sFMAUserDisplayName & OUTPUT_DELIMITER & sIfPublicDelegate & OUTPUT_DELIMITER & sMailboxStatus & OUTPUT_DELIMITER & rsUsers.Fields(0).Value & OUTPUT_DELIMITER & objUser.homeMDB & """""""")
						If (err.number <> 0) Then
							objfileError.WriteLine("User " & rsUsers.Fields(0).Value & " could not be added to the export file. You should set permissions manually for this user.")
							objfileError.WriteLine("Error: " & err.Description)
							err.Clear
							fError = True
							fOneError = True
						End If
						Set objCmdDisplayName = Nothing
						Set rsTrustee = Nothing
						Set objTrustee = Nothing
					End If
				Next
					
				If cScriptMode = MODE_SETALL Then
					err.Clear
					objSDNTsecurity.DiscretionaryAcl = objDACLNTSD
					objUser.Put "ntSecurityDescriptor", Array( objSDNTsecurity )
					objUser.SetOption ADS_OPTION_SECURITY_MASK, ADS_SECURITY_INFO_DACL
					objUser.SetInfo
					If (err.number <> 0) Then
						objfileError.WriteLine("Failed to update ADSI for user: " & rsUsers.Fields(0).Value)
						objfileError.WriteLine("Error: " & err.Description)
						err.Clear
						fError = True
						fOneError = True
					End If
				End If

				TotalACE = 0
				Set objSDMailbox = Nothing
				Set objSDNTsecurity = Nothing
				Set objUser = Nothing
				Set objDACLNTSD = Nothing
			End If
		
		End If	
		rsUsers.MoveNext
	Wend
End If

If (cScriptMode = MODE_IMPORT) Then
	Dim sOneRow
	Dim sArraySplit
	Dim objUserItem
	Dim UserPath
	Dim objUserSD
	Dim objUserDACL
	Dim fNeedToAddSendAs
	
	sImportFilePath = WScript.Arguments(ARG_INDEX_FILENAME)

	WScript.StdOut.WriteLine("If you continue, each account listed in " & sImportFilePath)
	WScript.StdOut.WriteLine("that has Full Mailbox Access permission for a given mailbox")
	WScript.StdOut.WriteLine("will also be granted permission to Send As the mailbox owner.")
	WScript.StdOut.WriteLine()
	WScript.StdOut.Write("Press Y to continue or any other key to cancel: ")
	strInput = WScript.StdIn.ReadLine()
	If (UCase(strInput) <> UCase("Y")) Then
		WScript.Quit
	End If	
	WScript.StdOut.WriteLine("Starting...")
	WScript.StdOut.WriteLine()

	UserPath = EMPTYSTRING	
	err.Clear	
	Set objFSO = CreateObject("Scripting.FileSystemObject")
	Set objfileImport = objFSO.OpenTextFile(sImportFilePath, ForReading, False, TristateTrue)
	If (err.number <> 0) Then
		WScript.StdOut.WriteLine("Failed to open import file " & sImportFilePath & ", error:" & err.Description)
		objfileError.WriteLine("Failed to open import file " & sImportFilePath & ", error:" & err.Description)
		WScript.Quit
	End If	

	fNeedToAddSendAs = False
	Do While objfileImport.AtEndOfStream <> True
		If (fOneError = True) Then
			WScript.StdOut.Write("!")
		Else
			WScript.StdOut.Write(".")
		End If
		fOneError = False

		err.Clear
		sOneRow = objfileImport.ReadLine
		sArraySplit = Split(sOneRow , OUTPUT_DELIMITER)
		If (err.number <> 0) Then
			objfileError.WriteLine("Failed to parse one row: " & sOneRow )
			objfileError.WriteLine("Error: " & err.Description)
			err.Clear
			fError = True
			fOneError = True
		End If
		
		If (UserPath <> sArraySplit(COLUMN_INDEX_USERADSPATH)) Then
			'A new user
			If (fNeedToAddSendAs = True ) Then
				'update existing user
				err.Clear 
				objSDNTsecurity.DiscretionaryAcl = objDACLNTSD
				objUser.Put "ntSecurityDescriptor", Array( objSDNTsecurity )
				objUser.SetOption ADS_OPTION_SECURITY_MASK, ADS_SECURITY_INFO_DACL
				objUser.SetInfo
				If (err.number <> 0) Then
					objfileError.WriteLine("Failed to update permissions for user: " & UserPath)
					objfileError.WriteLine("Error: " & err.Description)
					fError = True
					fOneError = True
				End If
			End If
						
			fNeedToAddSendAs = False
			Set objUser = Nothing
			Set objSDNTsecurity = Nothing
			Set objDACLNTSD = Nothing

			UserPath = sArraySplit(COLUMN_INDEX_USERADSPATH)
			err.Clear 
			Set objUser = GetObject(UserPath)
			Set objSDNTsecurity = objUser.ntSecurityDescriptor  
			Set objDACLNTSD = objSDNTsecurity.DiscretionaryACL			
			If (err.number <> 0) Then
				objfileError.WriteLine("Failed to get user object: " & UserPath)
				objfileError.WriteLine("Error: " & err.Description)
				err.Clear
				fError = True
				fOneError = True
			End If
		End If
	
		'Add newACE   Do we need this check?
		CheckSendAsACE objDACLNTSD, sArraySplit(COLUMN_INDEX_FMAALIAS)
		If (fACESendasFound = 0) Then
			Set objNewACE = CreateObject ("AccessControlEntry")
			objNewACE.AceFlags = 0 
			objNewACE.AceType = ACCESS_ALLOWED_OBJECT_ACE_TYPE
			objNewACE.AccessMask = EX_MB_SEND_AS_ACCESSMASK 
			objNewACE.Flags = 1
			objNewACE.ObjectType = EX_MB_SEND_AS_GUID
			objNewACE.Trustee = sArraySplit(COLUMN_INDEX_FMAALIAS)

			objDACLNTSD.AddAce objNewACE
			fNeedToAddSendAs = True			
		End If
	Loop
	
	If (fNeedToAddSendAs = True ) Then
		'update the last user
		err.Clear 
		objSDNTsecurity.DiscretionaryAcl = objDACLNTSD
		objUser.Put "ntSecurityDescriptor", Array( objSDNTsecurity )
		objUser.SetOption ADS_OPTION_SECURITY_MASK, ADS_SECURITY_INFO_DACL
		objUser.SetInfo
		If (err.number <> 0) Then
			objfileError.WriteLine("Failed to update permissions for user: " & UserPath)
			objfileError.WriteLine("Error: " & err.Description)
			fError = True
		End If
	End If

End If 

objFSO.Close
objfileImport.Close
objfileExport.Close
objfileError.Close

Set objFSO = Nothing
Set objfileImport = Nothing
Set objfileExport = Nothing
Set objfileError = Nothing
Set objCommand = Nothing
Set conn = Nothing

WScript.StdOut.WriteLine()
If (fError = True) Then
	WScript.StdOut.WriteLine("Finished with one or more errors. See " & sErrorsFilename)
Else
	WScript.StdOut.WriteLine("Finished successfully. No errors were encountered.")
End If

Function FindAllFMAUsers (objSD)
Dim objACL
Dim objACE
Dim intACECount
Dim strIndent
Dim dAccessMaskBit
Dim dPosition
Dim sUserAlreadyFound

	On Error Resume Next
	err.Clear
	TotalACE = 0
	sFMADeniedList = EMPTYSTRING
	sFMAExplicitAllow = EMPTYSTRING
	sUserAlreadyFound = OUTPUT_DELIMITER
	intACECount = 0
	Set objACL = objSD.DiscretionaryAcl
	intACECount = objACL.AceCount

	If intACECount Then
		' Open discretionary ACL (DACL) data.
		For Each objACE In objACL		
			
		dPosition = inStr(1, objACE.Trustee, "$")
		If ((0 = Instr(UCase(objACE.Trustee & OUTPUT_DELIMITER), UCase(FMA_EXCLUSIVE_EXSVC))) And (0 = Instr(sUserAlreadyFound, OUTPUT_DELIMITER & objACE.Trustee & OUTPUT_DELIMITER)) And (0 = Instr(FMA_EXCLUSIVE_LIST, OUTPUT_DELIMITER & objACE.Trustee & OUTPUT_DELIMITER)) And (dPosition <> Len(objACE.Trustee)) And ((objACE.AccessMask And EX_FULLMailbox_AccessMask) <>0) And ((objACE.AceType = ADS_ACETYPE_ACCESS_ALLOWED) Or (objACE.AceType = ACCESS_ALLOWED_OBJECT_ACE_TYPE) )) Then
			If (TotalACE < dArraySize) Then
				sTrusteeAlias(TotalACE) = objACE.Trustee
				sUserAlreadyFound = sUserAlreadyFound & objACE.Trustee & OUTPUT_DELIMITER
			End If
			TotalACE = TotalACE + 1	
			If ((objACE.AceFlags And ADS_ACEFLAG_INHERITED_ACE) = 0) Then
				'Keep a list who explictly set FMA at mailbox level
				sFMAExplicitAllow = sFMAExplicitAllow & objACE.Trustee & OUTPUT_DELIMITER			
			End If
		ElseIf (( (objACE.AccessMask And EX_FULLMailbox_AccessMask) <>0 ) And (objACE.AceType = ADS_ACETYPE_ACCESS_DENIED)) Then
			'Keep a list who denied FMA, use OUTPUT_DELIMITER as demiliter, 
			'include both inherited and explicit set at mailbox level
			sFMADeniedList = sFMADeniedList & objACE.Trustee & OUTPUT_DELIMITER			
		End If
		Next
	End If

	Set objACL = Nothing
End Function

Function CheckSendAsACE (objDiscretionaryACL, sTAlias)
Dim objACE
Dim intACECount

	err.Clear 
	fACESendasFound = 0
	intACECount = objDiscretionaryACL.AceCount

	If intACECount Then
		For Each objACE In objDiscretionaryACL	
			err.Clear 
			If ( (objACE.Trustee = sTAlias) And (objACE.ObjectType = EX_MB_SEND_AS_GUID) ) Then
				fACESendasFound = 1
			End If
			If (err.number <> 0) Then
				objfileError.WriteLine("Could not read permissions for this user: " & sTAlias)
				objfileError.WriteLine("Error: " & err.Description)
				err.Clear
				fError = True
				fOneError = True
			End If			
		Next			
	End If	
End Function

Function IfFMAAllowed(sTrustee)
	'FMA allow ACE has been found. Assume it's true
	fFMAAllowed = True
	
	If ( (0 <> Instr(sFMADeniedList, sTrustee)) And (0 = Instr(sFMAExplicitAllow, sTrustee))	) Then
		'If Denied ACE is found, and no explicit allow FMA 
		fFMAAllowed = False
	End If 
End Function

Function CreateOutputFiles
	Dim sTimeArray
	Dim sTimeShort
	Dim sTime
	
	err.Clear
	sTime = Time
	sTimeShort = Split(sTime, " ")
	sTimeArray = Split(sTimeShort(0), ":")

	Set objFSO = CreateObject("Scripting.FileSystemObject")
	sErrorsFileName = ERROR_FILE & "_" & sTimeArray(0) & "_" & sTimeArray(1) & "_" & sTimeArray(2) & ".txt"
	Set objfileError = objFSO.OpenTextFile(sErrorsFileName, ForWriting, True, TristateTrue)

	If (cScriptMode = MODE_SETALL Or cScriptMode = MODE_EXPORT)	Then
		sExportFileName = EXPORT_FILE & "_" & sTimeArray(0) & "_" & sTimeArray(1) & "_" & sTimeArray(2) & ".txt"
		Set objfileExport = objFSO.OpenTextFile(sExportFileName, ForWriting, True, TristateTrue)	
	End If
	
	If err.number <> 0 Then
		WScript.StdOut.WriteLine("Unable to create export or error files: " & err.Description)
		objfileError.WriteLine("Unable to create export or error files: " & err.Description)
		fError = True
		fOneError = True
		WScript.Quit	
	End If

End Function

Function DisplaySyntax
	WScript.StdOut.WriteLine("Syntax:")
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("Export accounts with Full Mailbox Access that do not have Send As permission:")
	WScript.StdOut.WriteLine("     CSCRIPT """ & WScript.ScriptName & """ DOMAIN_CONTROLLER -Export")
	WScript.StdOut.WriteLine("         NOTE: The list will be saved to Send_As_Export_HH_MM_SS.txt")
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("Grant Send As to all accounts listed in an export file:")
	WScript.StdOut.WriteLine("     CSCRIPT """ & WScript.ScriptName & """ DOMAIN_CONTROLLER -Import ""filename.txt""")
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("Grant Send As to all accounts in the domain with Full Mailbox Access:")
	WScript.StdOut.WriteLine("     CSCRIPT """ & WScript.ScriptName & """ DOMAIN_CONTROLLER -SetAll")
	WScript.StdOut.WriteLine("         NOTE: Accounts will be listed in Send_As_Export_HH_MM_SS.txt")
	WScript.StdOut.WriteLine()
	WScript.StdOut.WriteLine("For all modes, errors are saved to Send_As_Errors_HH_MM_SS.txt")

	WScript.Quit	
End Function
SCRIPT FINAL

A Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita. Isso inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação para uma finalidade específica. Este artigo presume que você esteja familiarizado com a linguagem de programação que está sendo demonstrada e com as ferramentas que são usadas para criar e depurar procedimentos. Engenheiros de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento. No entanto, eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades específicas.

Para obter mais informações sobre o suporte opções que estão disponíveis na Microsoft, visite o seguinte da Microsoft site:
http://support.microsoft.com/default.aspx?scid=fh;[LN];CNTACTMS
Os produtos de terceiros mencionados neste artigo são fabricados por empresas independem da Microsoft. Microsoft não oferece nenhuma garantia, implícita ou não, sobre o desempenho ou confiabilidade desses produtos.

Propriedades

ID do artigo: 912918 - Última revisão: terça-feira, 8 de maio de 2012 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • Microsoft Exchange 2000 Server Standard Edition
  • Microsoft Exchange 2000 Enterprise Server
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange Server 2003 Enterprise Edition
Palavras-chave: 
kbtshoot kbpending kbbug kbprb kbmt KB912918 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 912918

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com