Você está offline; aguardando reconexão

Usando a ferramenta de actualização de calendário do Exchange para alterações de horário de verão de endereço para Exchange Server

IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.

Clique aqui para ver a versão em Inglês deste artigo: 930879
Importante: A atualização descrita neste artigo da Base de Conhecimento Microsoft foi substituída pela atualização descrita no artigo 941018 do Microsoft Knowledge Base. Para certificar-se que o Windows tem os dados mais recentes do fuso horário, instale a atualização descrita no artigo 941018 do Microsoft Knowledge Base. Não é necessário desinstalar a atualização descrita neste artigo da Base de Conhecimento Microsoft antes de instalar a atualização descrita no artigo 941018 do Microsoft Knowledge Base.

Para obter mais informações, clique no número de artigo a seguir para visualizar o artigo na Base de Conhecimento Microsoft:
941018 Como corrigir o horário de verão usando a ferramenta de actualização de calendário do Exchange
INTRODUÇÃO
Horário de verão é um sistema de adiantar os relógios para que o nascer e o pôr do sol ocorram uma hora mais tarde. O efeito é verão adicional à noite. Vários países observam a hora de verão, apesar da maioria tem suas próprias regras e regulamentações para quando começa e termina. As datas do horário de verão (também conhecida como DST) podem ser alteradas todos os anos e os usuários precisam atualizar seu calendário do Microsoft Office Outlook sempre que o verão ou regras alterar. As datas entre as regras de hora de Verão anteriores e as regras de hora de verão atuais são conhecidas neste artigo como o "horário de verão período."

Este artigo enfoca as ações que você pode tomar para itens de calendário de endereço no Microsoft Outlook que ocorrem durante o período prolongado de hora de verão.

Para obter mais informações sobre como se preparar para as alterações no horário de verão em 2007 (DST 2007) para todos os produtos da Microsoft afectados, visite o seguinte site da Microsoft: Este artigo enfoca as ações que devem ser seguidas para actualizar itens de calendário que estão armazenados no Microsoft Exchange Server de acordo com as novas regras de hora de verão. A solução apresentada neste artigo envolve a ferramenta de actualização de calendário do Exchange ("a ferramenta Exchange"). A ferramenta Exchange conta com a ferramenta de actualização de dados de fuso horário para Microsoft Office Outlook ("a ferramenta do Outlook").
Para obter mais informações sobre a ferramenta do Outlook, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:
931667 Como tratar as alterações de horário de verão em 2007 usando a ferramenta de actualização de dados de fuso horário para Microsoft Office Outlook

Sobre a ferramenta Exchange

Depois de instalar as atualizações de horário de verão para o Microsoft Windows, todos os compromissos antigos que ocorrem durante os períodos de alteração do horário de verão serão exibidos incorretamente como ocorre uma hora mais tarde. Isso é verdadeiro para compromissos recorrentes e instância única. Estes compromissos devem ser atualizados para que eles serão exibidos corretamente no Outlook, Outlook Web Access e aplicativos com base em CDO.

O Outlook fornece uma ferramenta chamada a ferramenta de actualização de dados de fuso horário para Microsoft Office Outlook. Essa ferramenta permite que os usuários atualizem seus próprios calendários.

Observação: No Microsoft Office Outlook 2007, a ferramenta de actualização de dados de fuso horário é interna. No entanto, recomendamos que você use a versão autônoma da ferramenta de actualização de dados de fuso horário.
931667 Como tratar as alterações de horário de verão em 2007 usando a ferramenta de actualização de dados de fuso horário para Microsoft Office Outlook
A ferramenta de actualização de calendário do Exchange ("a ferramenta Exchange") permite que você evite os desafios envolvidos quando você implantar a ferramenta Outlook amplamente a todos os usuários e permite que você certificar-se de que cada usuário executa a ferramenta corretamente.

Descrição geral da ferramenta Exchange

A ferramenta Exchange consiste em dois arquivos executáveis separados. Esses arquivos são descritos na tabela a seguir.
Nome do ArquivoDescrição
Msextmz.exeEste programa executável extrai informações de fuso horário de caixas de correio em um servidor que esteja executando o Exchange Server. Este programa executável também atualiza os calendários de caixa de correio para uma lista especificada de usuários invocando a ferramenta do Outlook contra cada usuário especificado.
Msextmzcfg.exeEste programa executável é uma ferramenta de configuração que executa a maioria das etapas envolvidas na atualização de um servidor do Exchange Server.

Versão 2 da ferramenta Exchange

A versão 2 da ferramenta de actualização de calendário do Exchange foi lançada em 21 de fevereiro de 2007. Este artigo refere-se à versão 2 da ferramenta Exchange. Se você estiver executando a versão 1 da ferramenta Exchange, desinstalá-lo e instalar a versão 2. A versão 2 da ferramenta Exchange inclui os seguintes aprimoramentos:
  • Desempenho da versão 2 é tão rápido quanto a versão 1 duas vezes quando executa a ferramenta no modo de atualização.
  • Interface de usuário aperfeiçoada.
  • Vazamento de memória é fixos que os computadores cliente necessário para ser reiniciado com freqüência.
  • Algoritmo aprimorado está incluído para mapear fusos horários extraídos para a zona de tempo do sistema operacional.

Os riscos e as limitações da execução da ferramenta Exchange

Há duas questões a considerar antes de executar a ferramenta Exchange. A tabela a seguir lista esses problemas, os efeitos em potencial na infra-estrutura de TI e os usuários e suas estratégias de atenuação.
Risco EfeitoAtenuação
Há muitas atualizações de reunião.O desempenho do servidor e da rede diminui.Determine o efeito sobre o desempenho do servidor e da rede pode atualizando um pequeno lote de usuários primeiro. Se a carga for interrupções, execute a ferramenta horário de pico ou durante o horário de manutenção dedicado.
A ferramenta leva muito tempo para ser executada.MSXTMZ.exe é o único thread. Se você executar esse arquivo no modo de atualização contra milhares de usuários ao mesmo tempo, a ferramenta Exchange pode levar várias horas ou possivelmente dias para concluir. Para acelerar o processo de atualização para todas as caixas de correio, dividir os usuários em lotes e atualize cada lote de usuários por meio de uma instância separada do MSXTMZ.exe em um computador separado.

Opções para atualizar as caixas de correio

A tabela a seguir lista cinco opções que podem ser usadas para atualizar as caixas de correio de usuário para usar as regras de fuso horário de verão de 2007.
OpçãoProfissionais de TIDesvantagens
Distribuir a ferramenta do Outlook para cada usuário e, em seguida, instrua os usuários a atualizar suas caixas de correio.Essa opção evita os riscos e as limitações da execução da ferramenta Exchange.É difícil garantir que todos os usuários serão executado a ferramenta do Outlook corretamente e no momento oportuno. Os usuários que não têm o Outlook não poderão executar a ferramenta do Outlook. É necessário um esforço adicional de formação educacional para diminuir a confusão para os usuários.
Execute a ferramenta Exchange contra usuários afetados todos os servidores.Esta opção fornece uma experiência otimizada para os usuários.Há problemas associados com a execução da ferramenta Exchange, conforme descrito na tabela anterior.
Execute o Exchange ferramenta e atualização somente compromisso recorrente. Permite aos usuários atualizar compromissos de ocorrência única em suas caixas de correio usando a ferramenta do Outlook.Há menos risco envolvido de compromissos de instância única atualizados incorretamente.Desvantagens da execução da ferramenta do Outlook são combinadas com as contras da execução da ferramenta Exchange.
Execute a ferramenta Exchange nem a ferramenta do Outlook. Peça aos usuários para examinar seus calendários e compromissos livro novamente conforme necessário.Essa opção evita os problemas da execução da ferramenta Exchange.A menos que todos os usuários novamente catálogo afetados todos os compromissos, alguns itens do calendário será de uma hora fora durante o período prolongado de hora de verão. É necessário um esforço adicional de formação educacional para diminuir a confusão para os usuários.
Distribuir a ferramenta do Outlook para cada usuário e, em seguida, instrua os usuários a atualizar suas caixas de correio. Em seguida, use o modo de extração de fuso horário da ferramenta Exchange para determinar se os usuários estão executando a ferramenta do Outlook. Se os usuários não estão executando a ferramenta do Outlook, o administrador pode executar a ferramenta Exchange.Essa opção reduz o risco de usuários não executando a ferramenta de maneira oportuna e evita os problemas da execução da ferramenta Exchange.Essa não é uma opção se os usuários estiverem executando o Outlook 2007.

Como instalar a ferramenta Exchange

A ferramenta de actualização de calendário do Exchange está disponível na forma de arquivo executável auto-extraível Msextmz.exe.

Após a instalação, os arquivos no diretório de instalação devem incluir os seguintes arquivos:
  • Msextmz.exe
  • Msextmzcfg.exe
  • Msextmz.ini

    Este arquivo é que o filethat. ini mestre documenta todos os parâmetros que são usados pelo Msextmz.exe.
  • Msextmzcfg.XML

    Este arquivo é o mappingfile de fuso horário que mapeia o Outlook, o CDO e o Outlook Web Access fusos para zonas de tempo do sistema operacional.
Para obter mais informações sobre a versão mais recente da ferramenta de actualização de calendário do Exchange, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:
941018 Como corrigir o horário de verão usando a ferramenta de actualização de calendário do Exchange

Idiomas que são suportados pela ferramenta do Exchange

A ferramenta do Exchange está disponível apenas em inglês. A ferramenta será executada somente em um computador em inglês (EUA).

Versões do Exchange Server que são compatíveis com a ferramenta do Exchange

A ferramenta Exchange pode actualizar caixas de correio nas seguintes versões do Exchange Server:
  • Microsoft Exchange Server 2007 Enterprise Edition
  • Microsoft Exchange Server 2007
  • Microsoft Exchange Server 2007 Standard Edition
  • Microsoft Exchange Server 2003
  • Microsoft Exchange Server 2003 Enterprise Edition
  • Microsoft Exchange 2000 Server
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange 2000 Server Enterprise Edition
  • Microsoft Exchange 2000 Server Standard Edition

Sistemas operacionais que são suportados pela ferramenta do Exchange

A ferramenta do Exchange será executada nos seguintes sistemas operacionais:
  • Microsoft Windows Server 2003
  • Microsoft Windows XP
  • Microsoft Windows 2000
Não há suporte para o Windows Vista.

O que fazer antes de executar a ferramenta do Exchange

Instalar atualizações

Antes de executar a ferramenta Exchange, certifique-se de que os computadores cliente e servidor são atualizadas corretamente com as seguintes atualizações:
  1. Instale a atualização de horário de verão do Windows nos computadores cliente e servidor. Para obter mais informações sobre como atualizar um computador que esteja executando o software de sistema operacional do Windows, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:
    942763 Atualização de cumulativa de fuso horário de dezembro de 2007 para sistemas operacionais Microsoft Windows
  2. Para o Exchange 2003 SP2, instale a seguinte atualização que é relevante para sua organização:
    • 911829 Você recebe uma mensagem de erro quando você tentar realizar tarefas de edição ou clique em para ativar o quadro de composição no Outlook Web Access
    • 924334 O formulário compor mensagem pára de responder depois que você instalar o Internet Explorer 7.0 e o controle S/MIME em um cliente do Outlook Web Access no Exchange Server 2003
    Observação: Esta etapa pode ser concluída ao mesmo tempo como etapa 1.

Verifique se os requisitos do sistema

A ferramenta Exchange deve ser executada em um computador que possui o Microsoft Office Outlook 2003 ou Microsoft Office Outlook 2007 instalado e que possui a ferramenta de dados de fuso horário do Outlook instalada. Além disso, o.NET Framework de Microsoft versão 2.0 deve ser instalado no computador cliente.

O Outlook e a ferramenta de actualização de dados de fuso para Microsoft Office Outlook não fazem parte do pacote de download da ferramenta do Exchange. Eles precisam ser instalados separadamente.

Observação: Não confunda o pacote instalador da ferramenta Outlook chamado Tzmove.exe com o Outlook ferramenta arquivo executável real que também é chamado de Tzmove.exe.

Para executar a ferramenta Exchange com êxito, o computador não deve ter o valor de registro PickLogonProfile definido. Como alternativa, esse valor do registro deve ser definido como 0. Para determinar se esse valor do registro existe, siga estas etapas.

Importante: Essa seção, método ou tarefa contém etapas que informam sobre como modificar o registro. No entanto, sérios problemas poderão ocorrer se você modificar o registro incorretamente. Portanto, certifique-se de seguir estes passos cuidadosamente. Para obter mais proteção, faça backup do registro antes de modificá-lo. Em seguida, você poderá restaurar o registro caso ocorra um problema. Para obter mais informações sobre como fazer backup e restaurar o registro, clique no número do artigo a seguir para visualizá-lo na Base de Conhecimento Microsoft:
322756 Como fazer backup e restaurar o registro no Windows
  1. Clique em Iniciar, Executar, tipo Regedite, em seguida, clique emOK.
  2. Expanda a seguinte subchave:
    HKEY_CURRENT_USER\Software\Microsoft\Exchange\client\options\
  3. Clique em Opçõese determinar whetherthe valor PickLogonProfile existe. Se o valor dePickLogonProfile existe e é definido como 1, defina a valueto 0. Para fazer isso, execute as seguintes etapas:
    1. Clique com o botão PickLogonProfilee, em seguida, clique em Modificar.
    2. Na caixa dados do valor , digite 0e, em seguida, clique em OK.
A ferramenta do Exchange não pode ser executada em um computador que esteja executando o Exchange Server nem as ferramentas de gerenciamento de sistema do Exchange. Se você tentar instalar a ferramenta Exchange em um computador que está executando o Exchange Server nem as ferramentas de gerenciamento de sistema do Exchange, você recebe a seguinte mensagem de erro:
Ferramenta de actualização de calendário do Microsoft Exchange não pode ser instalada com o Microsoft Exchange.

Como configurar manualmente e executar Msextmz.exe

Configurar o arquivo Msextmz.ini

O arquivo de Msextmz.ini deve ser configurado corretamente para Msextmz.exe para serem executados corretamente. Recomendamos que você leia os comentários no arquivo Msextmz.ini cuidadosamente antes de modificar o arquivo Msextmz.ini.

Especificar o modo de execução Msextmz.exe

Msextmz.exe é executado em dois modos. Para especificar o modo de execução, parâmetros específicos precisam ser definidas no arquivo Msextmz.ini. A lista a seguir descreve os três modos e descreve como configurar os modos no arquivo Msextmz.ini.
  • Extração de fuso horário

    Nesse modo, Msextmz.exe extrai informações de fuso horário cada caixa de correio lendo um conjunto de propriedades MAPI.

    Msextmz.execan examinar compromissos recorrentes que são organizados pelo usuário na user'scalendar e, em seguida, tentam determinar um fuso horário para o usuário. No entanto, thisoption é o uso intensivo de recursos. Portanto, por padrão, essa opção é notenabled. Para ativar essa opção, defina o parâmetro ReadCalendarTimezones no arquivo Msextmz.ini.

    Informações de fuso horário de registros Msextmz.exe para cada usuário em um arquivo de saída que contém uma caixa de correio listof DNs legados. Cada DN herdado de caixa de correio tem os seguintes tipos de valores de fuso horário:
    • Fuso de horário de acesso do Outlook na Web
    • Fuso de horário do CDO
    • Fuso horário do Outlook
    • Fuso horário de reunião recorrente
    O formato do arquivo usa o seguinte formato:
    User_DN<\TAB></\TAB>CDO_Time_Zone<\TAB></\TAB>Outlook Web Access_Time_Zone<\TAB></\TAB>Outlook_Time_Zone<\TAB></\TAB>Recurring_Meeting_Time_Zone<\CRLF></\CRLF>
    Se Msextmz.exe não é possível extrair informações de fuso horário para qualquer um dos quatro tipos de zonas de tempo, o DN herdado de caixa de correio será registrado no errorfile.

    Para mapear o usuário a apenas uma zona de tempo, você deve importar o arquivo theoutput para o Microsoft Excel. No Excel, filtre a lista de usuários de acordo com o toone dos fusos horários. O fuso horário que você usa depende do ambiente.

    Por exemplo, se a maioria dos usuários usar dispositivos BlackBerry, Exchange 5.5Outlook Web Access, ou outras soluções baseadas em CDO, filtrar a lista por fuso horário CDO. Se a maioria dos usuários usar Exchange Outlook Web Access, filtre a lista por OutlookWeb acesso fuso. Se a maioria dos usuários não cabem em uma das seguintes situações, filtre a lista por recorrente reunião fuso horário.

    Para executar o modo de extração de zona inTime ferramenta, configure o arquivo. ini da seguinte maneira:
    • Deixe removido do parâmetro de linha de comando.
    • Defina o parâmetro arquivo_de_saída.
    • Defina o parâmetro ErrorFile.
    • Defina o parâmetro ServerDN.
    • Defina o parâmetro de perfil.
    • Defina o parâmetro de arquivo de log.
    • Defina o parâmetro ExportTimezones para 1.
    • Comente o restante dos parâmetros do arquivo. ini.
  • Atualização

    Nesse modo, Msextmz.exe atualizará todos os que de caixas de correio são especificados em um arquivo de entrada. O arquivo de entrada deve estar na followingformat:
    User_DN<\TAB></\TAB>Server_Friendly_Name<\TAB></\TAB>OS_Time Zone_Registry_Key<\CRLF></\CRLF>
    Apenas uma instância de Msextmz.exe pode executar em um cliente. However,Msextmz.exe pode ser executado em vários clientes ao mesmo tempo.

    Para runMsextmz.exe nesse modo, você deve configurar o arquivo de Msextmz.ini da seguinte forma:
    • Certifique-se de que o parâmetro de linha de comando é sem marca de comentário e aponta para o local correto do Tzmove.exe.
    • Defina o parâmetro de arquivo de entrada.
    • Comente o parâmetro arquivo_de_saída.
    • Defina o parâmetro ErrorFile.
    • Defina o parâmetro ServerDN.
    • Defina o parâmetro de arquivo de log.
    • Defina o parâmetro LogDirectory.
    • Comente o parâmetro ExportTimezones.
    • Tire comentários restantes parâmetros.
    No modo de atualização Msextmz.exe pode aceitar um arquivo de entrada que contém os usuários ServidoresExchange diferentes. A configuração. ini requer que você forneça o DN de um Exchangeserver. Nesse caso, você só precisa especificar um servidor DN de um Exchangeserver na organização do Exchange.

    Para atualizar compromissos recorrentes, parâmetro de linha de comando configurethe com o seguinte valor:
    Tzmove.exe /q /onlyrecurring
    Para atualizar compromissos recorrentes e de instância única, valor de linha de comando usar padrão.

Configurar permissões para Msextmz.exe

As permissões que são necessárias para executar Msextmz.exe dependem do modo de execução é usado. A tabela a seguir lista as permissões que são necessárias para cada modo de execução.
Modo de execuçãoPermissões
Extração de fuso horárioAdministrador somente para exibição do Exchange
Administrador local do computador que está executando o Msextmz.exe
AtualizaçãoUsuário do domínio que tenha direitos de Full Mailbox Access e enviar como para todas as caixas
Administrador local do computador que está executando o Msextmz.exe

Script de "Caixa de correio de conceder permissão"

Você pode usar o script de exemplo GrantMailboxPermission.vbs para conceder direitos de Full Mailbox Access e enviar como usuário para todas as caixas de correio de um domínio.

Esse script pode ser executado somente por um administrador do Exchange em um computador que esteja executando o Exchange 2000 Server ou Exchange Server 2003. Esse script não pode ser executado em um computador que está executando o Exchange Server 2007. No entanto, você pode usar o Shell de gerenciamento do Exchange para conceder as permissões necessárias.

O código para o script VBS é fornecido na seção "Referências". A tabela a seguir descreve os dois modos em que esse script é executado.
Modo deLinha de comandoDescrição
AdicionarCScript GrantMailboxPermission.vbs – adicionar Nome_do_domínio\Nome_do_usuário Nome_do_arquivoConcessões Nome_do_domínio\Nome_do_usuário Direitos totais de acesso de caixa de correio e enviar como às caixas de correio de usuário listadas no arquivo de entrada. O arquivo de entrada deve ser um arquivo de texto que contém DNs legados de caixas de correio da usuário delimitadas por CRLF.

O script gera um arquivo de GrantMailboxPermission.log. Este arquivo é um registro das caixas de correio que foram processadas. A primeira linha do arquivo de log é o Nome_do_domínio\Nome_do_usuário usuário que terá acesso. Não exclua esse arquivo. Esse arquivo é usado no modo de remover.

Se um acesso explícito "Negar" tiver sido atribuído ao usuário, o script registra as informações em um arquivo chamado "GrantMailboxPermission.err". O script não conceder ou alterar a permissão.

Se o usuário fizer parte de um grupo de segurança que foi atribuído "Negar" acesso, o script concede permissões Full Mailbox Access e enviar como. No entanto, o usuário não poderão fazer logon na caixa de correio. Todos os erros serão registrados no arquivo GrantMailboxPermission.err.
RemoverCScript GrantMailboxPermission.vbs – removerRemove os direitos de Full Mailbox Access e enviar como para caixas de correio que estão listados no arquivo GrantMailboxPermission.log do Nome_do_domínio\Nome_do_usuário. O Nome_do_domínio\Nome_do_usuário é especificado no arquivo GrantMailboxPermission.log.
Observação: Quando você executa esse script no computador que está executando o Exchange Server, o script retorna um ponto (.) quando o script processa com êxito um usuário. O script retorna um ponto de exclamação (!), se ele não processa um usuário com êxito.

Observação: O arquivo de saída do modo de extração de fuso horário não pode ser usado como um arquivo de entrada para esse script. Para criar o arquivo de entrada para esse script, cole o conteúdo do arquivo de saída de extração de fuso horário no bloco de notas, salvar o conteúdo como um novo documento e, em seguida, usar o novo documento como o arquivo de entrada.

Como o log funciona no modo de atualização

Logs da ferramenta de actualização de dados de fuso horário do Outlook

Quando a ferramenta do Outlook é executada, a ferramenta cria um arquivo de log no diretório temp. Este arquivo é nomeado "Update de fuso horário do Outlook". Msextmz.exe extrai as informações de "Update de fuso horário do Outlook" e, em seguida, cria por usuário arquivos de log no diretório especificado no LogDirectory do arquivo. ini.

Esses arquivos são nomeados, usando o seguinte formato:
MSExTmz-CN do usuário DN do usuário do-Número aleatório. LOG
Por exemplo, a ferramenta do Outlook registra as seguintes informações:
Usuário3-MSExTmz-0x0131273E.LOG
A ferramenta do Outlook faz isso quando ele processa um usuário que tem o seguinte DN:
/ O = PRIMEIRA ORGANIZAÇÃO/OU = PRIMEIRO GRUPO ADMINISTRATIVO/CN = RECIPIENTS/CN = USUÁRIO3

Arquivo de erro

Se Msextmz.exe não é possível executar a ferramenta do Outlook contra qualquer caixa de correio, o DN do usuário será registrado no arquivo de erro. Msextmz.exe não registrará nada no arquivo de erro se a ferramenta do Outlook foi executado com êxito.

Arquivo de log

Se a opção arquivo de Log é configurada no arquivo Msextmz.ini, a saída de informações de Msextmz.exe para a janela do Prompt de comando também está disponível no arquivo especificado.

Como executar Msextmzcfg.exe

Msextmzcfg.exe automatiza o processo de extração de fusos horários, da resolução de fusos horários para cada usuário e de gerar os arquivos. ini são necessários para executar Msextmzcfg.exe no modo de atualização e listas de usuários. Recomendamos que você use Msextmzcfg.exe para executar essas etapas em vez de executá-los manualmente. Esta seção descreve como executar o Msextmzcfg.exe.

Permissões necessárias

A conta usada para executar o Msextmzcfg.exe deve ter as seguintes permissões no cliente:
  • Administração de somente para exibição do Exchange
  • Administrador local

Exemplo de processo para atualizar um servidor do Exchange usando o Msextmzcfg.exe

  1. No computador cliente, crie um perfil do Outlook que faz logon em uma caixa de correio que reside no servidor do Exchange que você está tentando atualizar. Certifique-se de que o perfil está no modo on-line e, em seguida, configure este perfil para ser o perfil padrão.

    Observação: O Exchange server deve oferecer suporte a modo Online.
  2. Execute o Msextmzcfg.exe para iniciar a ferramenta do Exchange.
  3. Na página do Assistente da ferramenta de actualização de calendário do Exchange, execute um dos procedimentos a seguir:

    Para extrair o fuso horário ofall as caixas de correio em um servidor Exchange, siga estas etapas:
    1. Na caixa Server Name , digite o nome amigável ou o nome de domínio totalmente qualificado (FQDN) do servidor Exchange. Se o nome amigável contiver um ".", nesse caso, use o nome de NetBIOS. Msextmzcfg.exe falhará se o servidor estiver em outra floresta do Active Directory.
    2. Na caixa Arquivo de saída de extração , digite o nome do arquivo que irá conter todas as informações de fuso horário de caixa de correio.
    3. Se você deseja extrair os fusos horários para reuniões recorrentes, clique para selecionar a caixa de seleção extrair fuso de horário de reunião recorrente .

      Importante: Se você usar esta configuração, o tempo de execução do modo de extração será aumentado significativamente. Por padrão, a caixa de seleção extrair fuso de horário de reunião recorrente está desmarcada.
    4. Clique na lista Nome de perfil do Outlook e, em seguida, clique no perfil que você criou na etapa 1.
    5. Clique em próximo.


    Para ignorar a extração de fuso horário, siga estes passos:
    1. Clique para selecionar a caixa de seleção de extração de fuso horário de ignorar . Por padrão, a caixa de seleção de extração de fuso horário de ignorar está desmarcada.
    2. Na caixa Arquivo de saída de extração , digite o nome de um arquivo de saída de uma extração de fuso horário anteriores executar.
    3. Na caixa Server Name , digite o nome amigável ou o FQDN do servidor do Exchange que foi usado para gerar o arquivo de saída que você especificou na etapa 3b.
    4. Clique em Avançar.
  4. Após a zona de tempo a extração termina, Msextmzcfg.exeparses o arquivo de saída e tenta mapear o fuso horário do usuário mailboxesto sistema operacional real fusos.

    Se nenhuma zona de tempo não é bematched, você deve mapear manualmente o fuso horário na página Fuso horário de mapa . Para fazer isso, clique na zona de tempo do Windows que corresponde ao fuso horário de ousuário na lista fuso horário do Windows e, em seguida, clique emAvançar.
  5. Quando o processo de mapeamento estiver concluído, os usuários Msextmzcfg.execategorizes nos seguintes grupos:
    • Os usuários que possuem apenas uma zona de tempo (por exemplo, usuários que têm o fuso horário CDO, Outlook Web Access, Outlook ou reunião recorrente) ou usuários que têm vários fusos que mapeiam para a mesma zona de tempo do sistema operacional
    • Usuários que têm vários fusos que mapeiam para zonas de tempo do sistema operacional diferente
    • Usuários que não possuem as informações de fuso horário
    Msextmzcfg.exe permite que você salve a lista de usuários "inexistentes" e "conflito" em arquivos de texto separados. Para fazer isso, execute as seguintes etapas:
    1. Na área usuários com informações conflitantes de fuso horário , digite ConflictUsers.txt Na caixa Arquivo de saída .
    2. Na área usuários sem informações de fuso horário , digite NonExistent.txt Na caixa Arquivo de saída .
  6. Na página configuração de atualização do calendário , forneça as informações necessárias para gerar os arquivos de entrada de lista de usuário, os arquivos. ini e os arquivos de lote com o qual deseja atualizar as caixas de correio. Para fazerisso, execute essas etapas:
    1. Na lista Selecione o fuso horário que precisam ser atualizados , clique para selecionar a caixa de seleção para as zonas de tempo que você deseja atualizar.
    2. Na caixa Número de arquivos em lotes , digite o número de lotes de usuários que você deseja gerar.

      Essas informações são úteis se você deseja acelerar a atualização de tempo de execução. Você pode fazer isso dividir uma grande lista de usuários em lotes menores e, em seguida, executando várias instâncias do Msextmz.exe no modo de atualização. Fazer isso em computadores separados e ter cada instância do processo de Msextmz.exe um lote de usuários separado.

      Observação: Você não pode executar várias instâncias do Msextmz.exe no mesmo computador cliente.
    3. Na caixa caminho Tzmove.exe , digite o caminho da ferramenta do Outlook e seus parâmetros. Se você desejar atualizar somente reuniões recorrentes, clique para selecionar a caixa de seleção somente em reuniões recorrente .
    4. Na caixa Atraso de caixa de correio de Post (segundos) , digite o número de segundos pelo qual você deseja atrasar a criação de perfil entre atualizar caixas de correio. Recomendamos que você use o valor padrão de 0 segundos.
    5. Na caixa Limite por caixa de correio (minutos) , digite o número de minutos que você deseja que a ferramenta do Outlook para aguardar antes que ele irá expirar. Recomendamos que você use o valor padrão de 15 minutos.
  7. Clique em Concluir. Msextmzcfg.exe gera asubdirectory sob o diretório de execução atual. O nome de thesubdirectory é o nome amigável do servidor do Exchange. A subdirectorycontains os seguintes arquivos:
    • MSExTmz_x. ini

      Este arquivo é o arquivo. ini é usado pelo Msextmz.exe para executar no modo de atualização. x é um espaço reservado para o número de lote.
    • Mailboxes_x. txt

      Este arquivo é o arquivo de entrada de lista de usuário que é usado por Msextmzcfg.exe para executar no modo de atualização. x é um espaço reservado para o número de lote.
    • MSExTmz_x. bat

      Este arquivo é o arquivo em lotes que executa o Msextmzcfg.exe no modo de atualização contra os usuários que são especificados no Mailboxes_xarquivo. txt.
    • NonExistent.txt

      Este arquivo contém a lista de usuários que não têm informações de fuso horário em sua caixa de correio.
    • ConflictUsers.txt

      Este arquivo contém a lista de usuários que têm conflitos de fuso horário.
  8. Localize o subdiretório é denominado após o servidor, abra o arquivo Mailboxes_x.txt no bloco de notas, remova quaisquer entradas de caixa de correio de recurso ou sistema e, em seguida, salve o arquivo de Mailboxes_x.txt.
  9. Siga estas etapas:
    1. Inicie o Outlook e, em seguida, verifique se que Outlook corretamente efetua logon no servidor usando o perfil padrão e sem solicitar que você selecione um perfil.
    2. Certifique-se de que nenhum aviso apareça durante a inicialização do Outlook. Msextmz.exe não pode ser executado se houver avisos.
    3. Verifique se o seguinte arquivo não existe:
      %USERPROFILE%\Local Settings\Application Data\Microsoft\Outlook\Extend.dat
      Se esse arquivo existir, renomeie-o.
    Atualize as caixas de correio, vá para o subdiretório que isnamed após o servidor e executando os arquivos em lotes, um por um. Para executar com êxito os arquivos thebatch, você deve usar uma conta que tenha direitos de Full Mailbox acesso e enviar como para as caixas de correio que você deseja atualizar.

O que fazer depois que você executar a ferramenta Exchange

Instalar atualizações

Depois que você terminar de atualizar todos os servidores do Exchange em seu ambiente, instale a seguinte atualização nos servidores do Exchange:
926666 Atualização para alterações de horário de verão de 2007 para o Exchange 2003 Service Pack 2

Problemas conhecidos

  • Reuniões recorrentes que são criadas no Outlook Web Access não serão atualizados pela ferramenta do Exchange

    Se você instalar a atualização mencionada no artigo do Knowledge Base 926666 no servidor do Exchange antes de atualizar as caixas de correio, reuniões recorrentes são criadas no Outlook Web Access não serão atualizados pela ferramenta do Exchange. Para resolver esse problema, remover a atualização 926666, execute a ferramenta Exchange e, em seguida, reinstalar a atualização 926666 no servidor do Exchange.
  • Exchange 2007 deve ser reiniciado depois de executar a ferramenta do Exchange

    Para o Exchange 2007 Outlook Web Access exibir corretamente os itens do calendário depois de executar a ferramenta do Exchange, os serviços do Exchange devem ser reiniciados.
  • Não é possível instalar a ferramenta Exchange

    A ferramenta Exchange não será instalada com êxito ifeither das seguintes chaves do registro existe:
    • HKEY_CLASS_ROOT\Outlook.Application.9
    • HKEY_CLASS_ROOT\Outlook.Application.10
    Nesse caso, você receberá o seguinte erro mensagem whenyou tentar instalar a ferramenta Exchange:
    A ferramenta de alteração de ServerCalendar do Exchange não pode ser instalada com esta versão do Outlook.
    Para contornar esse problema, exclua essas chaves do registro, instalar a ferramenta Exchange e, em seguida, restaurar as chaves do registro.
  • Um fuso horário pode ser ambíguo

    Itens de calendário recorrente que são criados utilizando as regras de DST2006 no fuso horário do Pacífico (PST) no Outlook 2003 ou em um earlierversion do Outlook não são actualizados pela ferramenta do Outlook. AffectsMsextmz.exe esse problema porque Msextmz.exe executa a ferramenta do Outlook.

    Solução aroundthis problema, altere o registro para remover as zonas de tempo mexicanos em thecomputer com Msextmz.exe. Executar Msextmzcfg.exe no modo de atualização, e restaurar os fusos horários mexicanos no registro. Para fazer isso, execute o thesesteps.

    Importante: Essa seção, método ou tarefa contém etapas que informam sobre como modificar o registro. No entanto, sérios problemas poderão ocorrer se você modificar o registro incorretamente. Portanto, certifique-se de seguir estes passos cuidadosamente. Para obter mais proteção, faça backup do registro antes de modificá-lo. Em seguida, você poderá restaurar o registro caso ocorra um problema. Para obter mais informações sobre como fazer backup e restaurar o registro, clique no número do artigo a seguir para visualizá-lo na Base de Conhecimento Microsoft:
    322756 Como fazer backup e restaurar o registro no Windows
    1. Faça backup do registro.
    2. Clique em Iniciar, Executar, tipo Regedite, em seguida, clique em OK.
    3. Expanda a seguinte subchave:
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
    4. Clique com botão direito hora padrão do Méxicoe, em seguida, clique em Excluir.
    5. Na caixa de diálogo Confirmar exclusão da chave , clique em Sim.
    6. Clique com botão direito 2 de hora padrão do Méxicoe, em seguida, clique em Excluir.
    7. Na caixa de diálogo Confirmar exclusão da chave , clique em Sim.
    8. Execute Msextmzcfg.exe no modo de atualização.
    9. Restaure o registro a partir do backup criado na etapa 1.
    Para obter mais informações sobre como fazer backup e restaurar o registro, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:
    256986 Descrição do registro do Microsoft Windows
  • Há um limite para o número de caixas de correio que podem ser processados por servidor

    No modo lista de usuários e de extração de fuso horário mode,Msextmz.exe pode processar apenas 65.535 caixas de correio em um servidor. Se hasmore o servidor de caixas de 65.535 correio, algumas caixas de correio não será processada.
  • Pode haver conflitos com atribuições de sala de conferência

    Quando você usar a ferramenta do Outlook, reuniões são deslocados para a hora correta. No entanto, isso pode causar conflitos com roomassignments de conferência.

    Se você estiver executando o Exchange Server 2007, nós recommendthat você definir o limite de conflito para o Atendedor de Reserva de Recursos no Exchange2007 para 3. Depois que todas as caixas de correio são atualizadas, os conflitos automaticamente serão beresolved.

    Se você estiver usando o agendamento direto ou o agente de aceitação automática, siga estas etapas para atualizar as caixas de correio de recurso:

    Para agendamento direto

    Observação: As etapas a seguir exigem que você faça download do hotfix mais recente para a ferramenta de actualização de dados de fuso horário para Microsoft Office Outlook (Tzmove.exe).
    1. Execute Tzmove.exe (a ferramenta Outlook) com o parâmetro de linha de comando /FORCEREBASESUPPRESSALLUPDATES contra caixas de correio de recurso.
    2. Execute Tzmove.exe no modo normal em todas as outras caixas de correio.
    Após a atualização é concluída, se você usar o Outlook para fazer logon no andto de caixas de correio de recurso ler as atualizações são enviadas na etapa 2, as atualizações de reunião aparecem como "provisórias" no calendário da caixa de correio do recurso. Se ninguém se conecta à caixa de correio de recurso, as solicitações de reunião original que foram atualizadas na etapa 1 serão exibida como "aceito" no calendário da caixa de correio do recurso.

    Para obter mais informações sobre FORCEREBASESUPPRESSALLUPDATES, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:
    933146 Descrição do pacote de hotfix para a ferramenta de actualização de dados de fuso horário para Microsoft Office Outlook


    Agente de aceitação para Auto
    1. Certifique-se de que o agente de aceitação automática está em execução no servidor.
    2. Instale a atualização de horário de verão no computador cliente.
    3. Execute Tzmove.exe (a ferramenta Outlook) com o parâmetro de linha de comando /FORCEREBASESUPPRESSALLUPDATES contra caixas de correio de recursos que tenham o agente de aceitação automática ativada.
    4. Verifique novamente se o agente de aceitação automática está em execução. Isso é importante para certificar-se de que os usuários receberão a mensagem de aceitação para as reuniões atualizadas que eles organizados.
    5. Execute Tzmove.exe no modo normal em todas as outras caixas de correio.
  • Calendários de pastas públicos

    A ferramenta Exchange não atualiza Foldercalendars pública. Para obter informações sobre como atualizar um calendário de pasta pública, consulte a documentação de ferramenta do Outlook.
  • Você deve usar "Executar como" na linha de comando

    Se você pretende executar Msextmz.exe usando o "Executar como" na linha de comando, certifique-se de que você também usar "Executar como" para configurar o Editor para definir o valor PickLogonProfile no registro.
  • Msextmz.exe pode parar de responder

    Problemas com os servidores de catálogo global podem causeMsextmz.exe pare de responder. Se isso acontecer, siga estas etapas:
    1. Pare de Msextmz.exe.
    2. Se o parâmetro do arquivo de log foi definido em Msextmz.ini, descubra qual caixa de correio estava sendo processada. A entrada de Processamento de caixas de correio no arquivo de log fornece o DN do usuário da caixa de correio que estava sendo processado quando Msextmz.exe parou de responder.

      Se o parâmetro do arquivo de log não foi definido em Msextmz.ini, as informações de processamento de caixas de correio podem ser encontradas na janela do Prompt de comando.

      Todas as caixas de correio do usuário que vêm após a caixa de correio que estava sendo processada quando Msextmz.exe parou de responder não são processadas. Isso se aplica às caixas de correio em ServerName_TimeZone_Input_File.txt que foi usado como o arquivo de entrada para esta execução.
    3. Crie um novo arquivo de entrada que contém o usuário DNs das caixas de correio que não foram processadas.
    4. Antes de executar novamente o Msextmz.exe com esse novo arquivo de entrada, certifique-se de processar os usuários no arquivo de erro que foi gerado pela execução anterior.
  • Você pode executar as ferramentas do Outlook e o Exchange no mesmo ambiente

    Você pode executar as ferramentas do Outlook e o Exchange no mesmo ambiente. Se você executar a ferramenta Exchange em uma caixa de correio que hasalready foram atualizados pela ferramenta do Outlook, ou vice-versa, você experimentará efeitos noside. No entanto, se o administrador executa a ferramenta Exchange, é noneed para que os usuários separadamente, execute a ferramenta do Outlook.
  • Os lembretes aparecem mais tarde do que o esperado

    Não-meetingreminders para caixas de correio são atualizadas pela ferramenta do Exchange será não beupdated se o Outlook nunca tiver conectado à caixa de correio no modo Online. Nessa situação, você receberá lembretes uma hora mais tarde do que o esperado.

    Se o Outlook hasnever conectado no modo Online, você mustadjust os lembretes de compromissos do calendário incorretos localiza essa ferramenta de actualização de fuso horário de theOutlook. Se o Outlook nunca tiver conectado no Onlinemode, a pasta de pesquisa de lembretes não existe na caixa de correio. Thereforethe ferramenta não irá atualizar itens de email, contatos ou outros lembretes. Por exemplo, a ferramenta não atualizará um lembrete em um item de email para acompanhamento ata tempo no futuro ou um lembrete em um item de tarefa que tenha um lembrete.
  • Tempo de execução pode ser longo

    Msextmz.exe é o único thread. Portanto, é possível takemany horas para executar a ferramenta em várias caixas de correio.

    Para referência, a Microsoft IT pôde atualizar aproximadamente 53.000 caixas de correio em 16 horas usando nove clientes. Isso equivale a uma taxa de atualização de 6.13 caixas de correio por minuto para cada cliente.

    O número de convidados em uma solicitação de reunião não deve afetar o tempo de execução do modo de atualização. Isso ocorre porque da perspectiva do cliente, enviar uma atualização de reunião para um destinatário recebe o mesmo tempo que enviar uma atualização de reunião para destinatários de cem.

    O número de convidados afeta o número de cópias da atualização de reunião. No entanto, que é um problema de fluxo de mensagens, e não de tempo de execução.
  • O log de eventos pode ficar sem espaço após atualizar várias caixas de correio

    Tzmove.exe gera um evento informativo que inclui fonte TZMOVE EventID 32 para cada atualização bem-sucedida. Muitos eventos podem fazer com que o log do aplicativo exceder o espaço alocado no disco. No modo de atualização Msextmz.exe baseia-se nesses eventos para determinar a execução bem-sucedida do Tzmove.exe. Se Msextmz.exe não é possível localizar o evento Tzmove.exe correspondente que está associado com a caixa de correio Msextmz.exe está tentando atualizar, Msextmz.exe supõe que a atualização foi bem-sucedida. Portanto, Msextmz.exe registra a DN da caixa de correio no arquivo txt. Para evitar este problema, recomendamos que você defina o tamanho do log de eventos para máximo e Permitir substituição.
  • "Não é possível instalar, pois foram detectadas versões anteriores do"Ferramenta de actualização de calendário do Microsoft Exchange". Desinstale-os e execute a instalação novamente."

    Se você tiver instalado a versão da ferramenta de actualização de calendário do Exchange 1.0, você deve desinstalar versão 1.0 antes de instalar a versão 2.0. Versão 1.0 foi distribuído como um programa executável de extração automática que continha dois pacotes MSI: Msextmz.msi e Msextmzcfg.msi. Você deve desinstalar os dois pacotes antes de instalar a versão 2.0. Se você ainda tiver problemas ao instalar a versão 2.0, tente desinstalar e reinstalar a versão 1.0 usando os pacotes MSI em vez de usar a ferramenta Adicionar ou remover programas. Em seguida, reinicie o computador e instalar a versão 2.0. Se tudo mais falhar, diretamente extrai os binários de pacotes MSI.

Mensagens de erro e resoluções

  • Não é possível localizar caixas de correio timezone:Error 0x80004005
    Essa mensagem de erro pode ser causada por qualquer um dos seguintes problemas:
    • A ferramenta não conseguiu localizar quaisquer valores de fuso horário na caixa de correio do usuário específico. Para resolver esse problema, tente adicionar "ReadCalendarTimeZones = 1" (sem as aspas) para o arquivo Msextmz.ini para forçar a ferramenta para examinar itens de calendário recorrente para informações de fuso horário. Você pode criar um novo arquivo de entrada usando o DNs do log de erro que você recebeu da última execução.
    • Você está fazendo referência a Tzmove.exe do diretório errado. Para resolver esse problema, extraia o arquivo de instalação descarregado para a pasta onde Msextmz reside ou atualizar o Msextmz.ini para incluir um caminho completo para onde Tzmove.exe é instalado na estação de trabalho que você está usando.

      Observação: Quando você baixar a ferramenta de actualização de dados de fuso horário para Microsoft Office Outlook, Tzmove.exe exe é o instalador da ferramenta real. Referenciar o instalador causará erros ao executar Msextmz.
    • A conta que você está usando para executar Msextmz não tem permissões de caixa de correio cheia e não foi recebido as permissões corretas do Exchange. Para resolver esse problema, execute o script "Conceder permissão de caixa de correio" de um computador com Exchange Server.
  • Não é possível processar a caixa de correio /O =CONTOSO/ OU =PRIMEIRO GRUPO ADMINISTRATIVO/ CN =DESTINATÁRIOS/ CN =TESTMB01 -0x80004005
    Cuidadosamente, examine o legacyExchangeDN e faça as correções necessárias. Para certificar-se de que o valor seja preciso, use ADSIEdit para copiar e colar o valor.
  • A tabela não é possível abrir caixa de correio para servidor /O =CompanyRoot/ OU =ELE/CN = Configuração/cn = servidores/cn =EXCH01. Erro 80040115
    Este é um erro RPC. Cuidadosamente examine o legacyExchangeDN e faça as correções necessárias.
    Selecione o servidor válido
    É necessário o nome distinto (DN) do servidor. O DN deve se parecer com o seguinte DN:
    ServerDN: / O = CompanyRoot/OU = IT / cn = configuração/cn = servidores/cn = EXCH01
  • O aplicativo não inicializou corretamente (0xc0000135). Clique em OK para encerrar o aplicativo
    Essa mensagem de erro ocorre porque o.NET Framework 2.0 não está instalado.
  • HrTestMailboxAccess: não é possível abrir caixa de correio - 0x8004011D.
    Se você receber essa mensagem de erro durante a operação de atualização, a conta que você está usando não tem acesso completo à caixa de correio. A conta deve ter permissões Full Mailbox Access para todas as caixas para que a ferramenta poderá atualizar as caixas de correio.

    Verifique se as permissões corretas receberam usando o método descrito na seção "Configurar permissões para Msextmz.exe".
Referências

Script de "Caixa de correio de conceder permissão"

Option Explicit' For FileSystemObjectConst ForReading = 1Const ForWriting = 2Const ForAppending = 8Const TristateTrue = -1Const TristateUseDefault = -2Const TristateFalse = 0'Permission Type: Allow or DenyConst ADS_ACETYPE_ACCESS_ALLOWED = &H0Const ADS_ACETYPE_ACCESS_DENIED = &H1Const ADS_ACETYPE_ACCESS_ALLOWED_OBJECT = &H5Const ADS_ACETYPE_ACCESS_DENIED_OBJECT = &H6Const ADS_ACEFLAG_INHERIT_ACE = &H2Const ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE = &H4Const ADS_ACEFLAG_INHERIT_ONLY_ACE = &H8Const ADS_ACEFLAG_INHERITED_ACE = &H10Const ADS_ACEFLAG_VALID_INHERIT_FLAGS = &H1fConst ADS_ACEFLAG_SUCCESSFUL_ACCESS = &H40Const ADS_ACEFLAG_FAILED_ACCESS = &H80'Declare ADSI constantsConst ADS_SCOPE_SUBTREE = 2Const ADS_OPTION_SECURITY_MASK = 3Const ADS_OPTION_REFERRALS	= 1Const ADS_SECURITY_INFO_DACL = 4Const ADS_CHASE_REFERRALS_NEVER = &h00 Const ADS_CHASE_REFERRALS_SUBORDINATE = &h20 Const ADS_CHASE_REFERRALS_EXTERNAL = &h40'Microsoft Exchange Const EX_MB_SEND_AS_ACCESSMASK  = &H00100Const EX_FULLMAILBOX_ACCESSMASK = 1Const EX_MB_SEND_AS_GUID = "{AB721A54-1E2F-11D0-9819-00AA0040529B}"'Application Parameter IndexConst ARG_INDEX_MODE = 0Const ARG_INDEX_USERNAME = 1Const ARG_INDEX_FILENAME = 2Const MIN_ARG = 1Const MODE_INVALID = -1 Const MODE_ADD = 0Const MODE_REMOVE = 1Const ADD = "-ADD"Const REMOVE = "-REMOVE"'Application Const StringConst EMPTYSTRING = ""Const ERROR_FILENAME = "GrantMailboxPermission.err"Const OUTPUT_FILENAME = "GrantMailboxPermission.log"Dim OUTPUT_DELIMITEROUTPUT_DELIMITER = vbTab'Logging fileDim objFSODim objfileErrorDim objfileOutputDim objfileImportDim objconnDim objCommandDim rootDSEDim sDomainContainerDim sUserLDAPPathDim objUserDim objSDNTsecurityDim objDACLNTDim objDACLEXDim objSDMailboxDim fFMADim fSendAsDim AccessTypeForFMADim AccessTypeForSendASDim fAddedFMADim fAddedSendAsDim fRemovedFMADim fRemovedSendAsDim sArraySplitDim sOneRowDim sGrantedUserDim dArgCountDim cScriptModeDim dArgExpectedDim fOneErrorOn Error Resume Next'Parameter CheckingdArgCount = Wscript.Arguments.CountIf (dArgCount < MIN_ARG) Then	DisplaySyntaxEnd IfcScriptMode = MODE_INVALIDSelect Case UCase(WScript.Arguments(ARG_INDEX_MODE))	Case ADD		cScriptMode = MODE_ADD		dArgExpected = ARG_INDEX_FILENAME + 1	Case REMOVE		cScriptMode = MODE_REMOVE		dArgExpected = ARG_INDEX_MODE + 1	Case Else		cScriptMode = MODE_INVALIDEnd SelectIf (cScriptMode = MODE_INVALID Or dArgCount <> dArgExpected) Then	DisplaySyntaxEnd IfIf (cScriptMode = MODE_ADD) Then	sGrantedUser = WScript.Arguments(ARG_INDEX_USERNAME)	If (IsValidUserName(sGrantedUser) = False) Then		DisplaySyntax	End IfEnd IfCreateImportExportFilesIf (cScriptMode = MODE_ADD) Then	err.Clear		'Prepare LDAP connection	Set objconn = CreateObject("ADODB.Connection")	Set objCommand = CreateObject("ADODB.Command")	objconn.Provider = "ADSDSOObject"	objconn.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 rootDSE = GetObject("LDAP://rootDSE")	sDomainContainer = rootDSE.Get("defaultNamingContext")	If (err.number <> 0) Then		WScript.StdOut.WriteLine("Failed to find a Domain Container:" & err.Description)		objfileError.WriteLine("Failed to find a Domain Container:" & err.Description)		WScript.Quit	End If			Set objCommand.ActiveConnection = objconn	Do While objfileImport.AtEndOfStream <> True		fOneError = False		sUserLDAPPath = EMPTYSTRING		err.Clear		sOneRow = Trim(objfileImport.ReadLine)		If sOneRow <> EMPTYSTRING Then				    sUserLDAPPath = GetLDAPPathFromLegacyDN(sOneRow)		    If (err.number <> 0) Then			    objfileError.WriteLine("Failed to get user's LDAP path from " & sOneRow)			    fOneError = True			    err.Clear		    End If		    If (fOneError = False) Then			    Set objUser = GetObject(sUserLDAPPath)			    If (err.number <> 0) Then				    objfileError.WriteLine("Failed to get user object from " & sUserLDAPPath)				    objfileError.WriteLine("Error: " & err.Description)				    fOneError = True				    err.Clear			    End If		    End If    			    If (fOneError = False) Then			    Set objSDMailBox = objUser.MailboxRights			    Set objDACLEX = objSDMailbox.DiscretionaryAcl			    Set objSDNTsecurity = objUser.ntSecurityDescriptor			    Set objDACLNT = objSDNTsecurity.DiscretionaryAcl			    If (err.number <> 0) Then				    objfileError.WriteLine("Failed to get DACL of " & sUserLDAPPath)				    objfileError.WriteLine("Error: " & err.Description)				    fOneError = True				    err.Clear			    End If		    End If		    ' Check Full Mailbox Access and Send As permission		    fFMA = False		    fSendAs = False		    AccessTypeForFMA = ADS_ACETYPE_ACCESS_ALLOWED		    AccessTypeForSendAS = ADS_ACETYPE_ACCESS_ALLOWED		    If (fOneError = False) Then			    CheckFullMailboxAccess objDACLEX, sGrantedUser, fFMA, AccessTypeForFMA			    CheckSendAs objDACLNT, sGrantedUser, fSendAs, AccessTypeForSendAS			    If (err.number <> 0) Then				    objfileError.WriteLine("Failed to Check permission of " & sUserLDAPPath)				    objfileError.WriteLine("Error: " & err.Description)				    fOneError = True				    err.Clear			    End If		    End If		    'If we don't have either SendAS or FMA, we're going to add these permission		    If ( (AccessTypeForFMA = ADS_ACETYPE_ACCESS_DENIED) Or (AccessTypeForSendAs = ADS_ACETYPE_ACCESS_DENIED_OBJECT) ) Then			    'Deny access already granted, won't add permission to this user			    objfileError.WriteLine("Deny permission already added: " & sUserLDAPPath)			    fOneError = True		    End If    				    If ( fOneError = False And ((fFMA = False) Or (fSendAs = False)) ) Then			    fAddedFMA = False			    fAddedSendAs = False    						    If (fFMA = False) Then				    'Add FMA permission				    err.Clear				    AddAce objDACLEX, sGrantedUser, EX_FULLMAILBOX_ACCESSMASK, ADS_ACETYPE_ACCESS_ALLOWED, ADS_ACEFLAG_INHERIT_ACE, 0,0,0				    objSDMailbox.DiscretionaryAcl = objDACLEX				    objUser.MailboxRights = Array(objSDMailbox)				    If ( err.number <> 0 ) Then					    objfileError.WriteLine("Failed to add FullMailbox Access: " & sUserLDAPPath)					    objfileError.WriteLine("Error: " & err.Description)					    fOneError = True					    fAddedFMA = False					    err.Clear				    Else					    fAddedFMA = True				    End If			    End If    						    If (fSendAs = False) Then				    'Add SendAs permission				    err.Clear				    AddAce objDACLNT, sGrantedUser, EX_MB_SEND_AS_ACCESSMASK, ADS_ACETYPE_ACCESS_ALLOWED_OBJECT, 0,1, EX_MB_SEND_AS_GUID, 0				    objSDNTsecurity.DiscretionaryAcl = objDACLNT				    objUser.Put "ntSecurityDescriptor", Array( objSDNTsecurity )				    objUser.SetOption ADS_OPTION_SECURITY_MASK, ADS_SECURITY_INFO_DACL				    If ( err.number <> 0 ) Then					    objfileError.WriteLine("Failed to add SendAs permission: " & sUserLDAPPath)					    objfileError.WriteLine("Error: " & err.Description)					    fOneError = True					    fAddedSendAs = False					    err.Clear				    Else					    fAddedSendAs = True				    End If			    End If			    If (fOneError = False ) Then 				    objUser.SetInfo				    If (err.number <> 0) Then					    objfileError.WriteLine("Failed to update user: " & sUserLDAPPath)					    objfileError.WriteLine("Error: " & err.Description)					    fOneError = True					    err.Clear						    Else					    'Update Logging					    objfileOutput.WriteLine(sUserLDAPPath & OUTPUT_DELIMITER & fAddedFMA & OUTPUT_DELIMITER & fAddedSendAs)						    End If			    End If		    End If		    Set objUser = Nothing		    Set objSDNTsecurity = Nothing		    Set objDACLNT = Nothing		    Set objDACLEX = Nothing		    Set objSDMailBox = Nothing		    If (fOneError = True) Then			    WScript.StdOut.Write("!")		    Else			    WScript.StdOut.Write(".")		    End If        End If	LoopSet rootDSE = NothingSet objCommand = NothingSet objconn = NothingEnd IfIf (cScriptMode = MODE_REMOVE) Then	'Retreive the granted user from the first line of import file	sGrantedUser = objfileImport.ReadLine	If (IsValidUserName(sGrantedUser) = False) Then		WScript.StdOut.WriteLine("Invalid User in import file. please check import file..")		objfileError.WriteLine("Invalid User in import file. please check import file..")		WScript.Quit	End If		Do While objfileImport.AtEndOfStream <> True		fOneError = False		sUserLDAPPath = EMPTYSTRING		fAddedFMA = False		fAddedSendAs = False		fRemovedFMA = False		fRemovedSendAs = False		err.Clear		sOneRow = objfileImport.ReadLine		sArraySplit = Split(sOneRow, OUTPUT_DELIMITER)		'First column is Ldap path		sUserLDAPPath = sArraySplit(0)		'Second column is FullMailbox Permission		fAddedFMA = sArraySplit(1)		'Third column is SendAs		fAddedSendAs = sArraySplit(2)		Set objUser = GetObject(sUserLDAPPath)		If (err.number <> 0) Then			objfileError.WriteLine("Failed to get user object from " & sUserLDAPPath)			objfileError.WriteLine("Error: " & err.Description)			fOneError = True			err.Clear		End If				If ((fOneError = False) And (fAddedFMA = "True")) Then					Set objSDMailBox = objUser.MailboxRights			Set objDACLEX = objSDMailbox.DiscretionaryAcl			fRemovedFMA = RemoveFullMailboxAccess(objDACLEX, sGrantedUser)			If (err.number <> 0) Then				objfileError.WriteLine("Failed to Remove Full MailboxAccess from " & sUserLDAPPath)				objfileError.WriteLine("Error: " & err.Description)				fOneError = True				err.Clear			End If						If (fRemovedFMA = False) Then				objfileError.WriteLine("Couldn't find Full mailbox access permission on " & sUserLDAPPath)			End If						If ((fOneError = False) And (fRemovedFMA = True)) Then				objSDMailbox.DiscretionaryAcl = objDACLEX				objUser.MailboxRights = Array(objSDMailbox)			End If		End If		If ((fOneError = False) And (fAddedSendAs = "True")) Then					Set objSDNTsecurity = objUser.ntSecurityDescriptor			Set objDACLNT = objSDNTsecurity.DiscretionaryAcl			fRemovedSendAs = RemoveSendAs(objDACLNT, sGrantedUser)			If (err.number <> 0) Then				objfileError.WriteLine("Failed to Remove SendAs from " & sUserLDAPPath)				objfileError.WriteLine("Error: " & err.Description)				fOneError = True				err.Clear			End If			If (fRemovedSendAs = False) Then				objfileError.WriteLine("Couldn't find SendAs permission on " & sUserLDAPPath)			End If						If ((fOneError = False) And (fRemovedSendAs = True)) Then				objSDNTsecurity.DiscretionaryAcl = objDACLNT				objUser.Put "ntSecurityDescriptor", Array( objSDNTsecurity )				objUser.SetOption ADS_OPTION_SECURITY_MASK, ADS_SECURITY_INFO_DACL			End If		End If		If ((fOneError = False) And (fRemovedFMA Or fRemovedSendAs)) Then			objUser.SetInfo			If (err.number <> 0) Then				objfileError.WriteLine("Failed to update ADSI for user: " & sUserLDAPPath)				objfileError.WriteLine("Error: " & err.Description)				fOneError = True				err.Clear					Else 				If ( fRemovedFMA Or fRemovedSendAs ) Then					'Update Logging					objfileError.WriteLine("Removed Permission from " & sUserLDAPPath & OUTPUT_DELIMITER & fRemovedFMA & OUTPUT_DELIMITER & fRemovedSendAs)				End If			End If		End If		If (fOneError = True) Then			WScript.StdOut.Write("!")		Else			WScript.StdOut.Write(".")		End If	LoopEnd IfCloseImportexportFilesFunction IsValidUserName (sUserName)	Dim dPosition	dPosition = InStr(1, sUserName, "\")	If (dPosition = 0 ) Then		IsValidUserName = False		objfileError.WriteLine("Invalid User:" & sUserName)	Else		IsValidUserName = True	End IfEnd FunctionFunction CheckSendAs (objNTSD, sUser, fSendAs, AccessType)	Dim intACECount	Dim objACE		err.Clear	fSendAs = False	AccessType = ADS_ACETYPE_ACCESS_ALLOWED	intACECount = objNTSD.AceCount	If intACECount Then		For Each objACE In objNTSD			err.Clear			If ( (UCase(objACE.Trustee) = UCase(sUser)) And (objACE.ObjectType = EX_MB_SEND_AS_GUID) ) Then				fSendAs = True				AccessType = objACE.AceType			End If		Next	End If		If (err.number <> 0) Then		objfileError.WriteLine("Check SendAs permissions Failed : " & sUser)		objfileError.WriteLine("Error: " & err.Description)		err.Clear		fOneError = True	End If	Set objACE = NothingEnd FunctionFunction CheckFullMailboxAccess (objACL, sUser, fFoundFMA, AccessType)	Dim intACECount	Dim objACE	err.Clear	fFoundFMA = False	AccessType = ADS_ACETYPE_ACCESS_ALLOWED	intACECount = objACL.AceCount	If intACECount Then		For Each objACE In objACL			If ( (UCase(objACE.Trustee) = UCase(sUser)) And ((objACE.AccessMask And EX_FULLMAILBOX_ACCESSMASK) <> 0)) Then				fFoundFMA = True				AccessType = objACE.AceType			End If		Next	End If	If (err.number <> 0) Then		objfileError.WriteLine("Check FullMailbox permissions Failed : " & sUser)		objfileError.WriteLine("Error: " & err.Description)		err.Clear		fOneError = True	End If	Set ObjACE = NothingEnd FunctionFunction RemoveSendAs (objNTSD, sUser)	Dim intACECount	Dim objACE	Dim fFound		fFound = False	intACECount = objNTSD.AceCount		If intACECount Then		For Each objACE In objNTSD			If ((UCase(objACE.Trustee) = UCase(sUser)) And (objACE.ObjectType = EX_MB_SEND_AS_GUID) ) Then				objNTSD.RemoveAce objACE				fFound = True			End If		Next	End If	RemoveSendAs = fFound		End FunctionFunction RemoveFullMailboxAccess (objACL, sUser)	Dim intACECount	Dim objACE	Dim fFound		fFound = False	intACECount = objACL.AceCount		If intACECount Then		For Each objACE In objACL			If((0 <> Instr(UCase(objACE.Trustee), UCase(sUser))) And (objACE.AccessMask And EX_FULLMAILBOX_ACCESSMASK) <> 0) Then				objACE.AccessMask = (objACE.AccessMask Xor EX_FULLMAILBOX_ACCESSMASK)				fFound = True			End If		Next	End If	RemoveFullMailboxAccess = fFound		End FunctionFunction GetLDAPPathFromLegacyDN (sLegacyDN)	Dim rsUsers	Dim sLdapPath		objCommand.CommandText = "<GC://" & sDomainContainer & ">;(&(&(& (mailnickname=*) (| (&(objectCategory=person)(objectClass=user)(legacyExchangeDN=" & sLegacyDN & ")) ))));adspath;subtree"	objCommand.Properties("searchscope") = ADS_SCOPE_SUBTREE	objCommand.Properties("Page Size") = 10	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		objfileError.WriteLine("Search for mailbox owners failed, error:" & err.Description)		fOneError = True	End If		If (rsUsers.RecordCount = 0) Then		objfileError.WriteLine("No mailbox owner user accounts found for " & sLegacyDN & " in " & sDomainContainer & ".")		fOneError = True			End If	If (rsUsers.RecordCount > 1) Then		objfileError.WriteLine("Multiple mailboxs owner user accounts found for " & sLegacyDN & " in " & sDomainContainer & ".")		fOneError = True			End If	sLdapPath = Replace(rsUsers.Fields(0).Value, "GC://", "LDAP://")		GetLDAPPathFromLegacyDN = sLdapPath	Set rsUsers = NothingEnd FunctionFunction CloseImportexportFiles	objfileError.WriteLine("*******************************************************")	objfileError.WriteLine("End at " & Date & " " & Time)	objfileError.WriteLine("*******************************************************")	objFSO.Close	objfileError.Close	objfileOutput.Close	objfileImport.Close		Set objFSO = Nothing	Set objfileError = Nothing	Set objfileOutput = Nothing	Set objfileImport = NothingEnd FunctionFunction CreateImportExportFiles	Dim sErrorsFileName	Dim sImportFileName	Dim sOutputFileName	err.Clear	Set objFSO = CreateObject("Scripting.FileSystemObject")	sErrorsFileName = ERROR_FILENAME	sImportFileName = EMPTYSTRING	sOutputFileName = EMPTYSTRING	Select Case cScriptMode		Case MODE_ADD			sImportFileName = WScript.Arguments(ARG_INDEX_FILENAME)			sOutputFileName = OUTPUT_FILENAME		Case MODE_REMOVE			sImportFileName = OUTPUT_FILENAME 'Use output file name as import file			sOutputFileName = EMPTYSTRING			Case Else			DisplaySyntax	End Select	Set objfileError = objFSO.OpenTextFile(sErrorsFileName, ForAppending, True, TristateTrue)	objfileError.WriteLine("*******************************************************")	objfileError.WriteLine("Start at " & Date & " " & Time)	objfileError.WriteLine("*******************************************************")	If (cScriptMode = MODE_REMOVE) Then		Set objfileImport = objFSO.OpenTextFile(sImportFileName, ForReading, False, TristateTrue)	Else		Set objfileImport = objFSO.OpenTextFile(sImportFileName, ForReading, False, TristateFalse)	End If	If (sOutputFileName <> EMPTYSTRING) Then		'Check if output file already exists.		If (objFSO.FileExists(sOutputFileName)) Then			Set objfileOutput = objFSO.OpenTextFile(sOutputFileName, ForReading, False, TristateTrue)			sOneRow = objfileOutput.ReadLine			'If user name in the file is different from parameter, we can't proceed.			If ( sOneRow <> sGrantedUser ) Then				WScript.StdOut.WriteLine("The Domain\User must be the same as " & sOneRow )				WScript.Quit			End If			Set objfileOutput = objFSO.OpenTextFile(sOutputFileName, ForAppending, True, TristateTrue)		Else			Set objfileOutput = objFSO.OpenTextFile(sOutputFileName, ForWriting, True, TristateTrue)			'The first line of Log file is the user who is going to be granted the permissions			objfileOutput.WriteLine(sGrantedUser)		End If	End If		If (err.number <> 0) Then		WScript.StdOut.WriteLine("Failed to open Log file, error:" & err.Description)		WScript.Quit	End IfEnd FunctionFunction AddAce(dacl, TrusteeName, gAccessMask, gAceType, gAceFlags, gFlags, gObjectType, gInheritedObjectType)	Dim Ace1		Set Ace1 = CreateObject("AccessControlEntry")	Ace1.AccessMask = gAccessMask	Ace1.AceType = gAceType	Ace1.AceFlags = gAceFlags	Ace1.Flags = gFlags	Ace1.Trustee = TrusteeName	'Determine whether ObjectType has to be set	If CStr(gObjectType) <> "0" Then		Ace1.ObjectType = gObjectType	End If	'Determine whether InheritedObjectType has to be set.	If CStr(gInheritedObjectType) <> "0" Then		Ace1.InheritedObjectType = gInheritedObjectType	End If	dacl.AddAce Ace1    Set Ace1 = NothingEnd FunctionFunction DisplaySyntax	WScript.StdOut.WriteLine("Syntax:")	WScript.StdOut.WriteLine()	WScript.StdOut.WriteLine("Grant Full mailbox access and SendAs permission to USER based on IMPORT_FILE:")	WScript.StdOut.WriteLine("    CSCRIPT " & WScript.ScriptName & " -Add DOMAIN\USER IMPORT_FILE")	WScript.StdOut.WriteLine("    NOTE: """ & OUTPUT_FILENAME & """ will be created for -Remove option ")	WScript.StdOut.WriteLine()	WScript.StdOut.WriteLine("Remove Full mailbox access and SendAs permission based on " & OUTPUT_FILENAME & ":")	WScript.StdOut.WriteLine("    CSCRIPT """ & WScript.ScriptName & """ -Remove ")	WScript.StdOut.WriteLine()	WScript.StdOut.WriteLine("For all modes, errors are saved to " & ERROR_FILENAME )	WScript.Quit	End Function

Revisões

VersãoDataAlteração
1.011 de janeiro de 2007Versão original
2.012 de janeiro de 2007Alterações editoriais
3.007 de fevereiro de 2007Reconfiguração do artigo completo
3.108 de fevereiro de 2007URL do Centro de download atualizado
3.208 de fevereiro de 2007Alterações editoriais
4.009 de fevereiro de 2007Adicionadas novas informações sobre conflitos de sala de conferência
4.112 de fevereiro de 2007Adicionado Exchange 2003 Enterprise Edition para a seção "Aplica-se a"
4.212 de fevereiro de 2007Erro tipográfico corrigido
4.312 de fevereiro de 2007Corrigido o número de etapas em nota
5.013 de fevereiro de 2007Informações de máquina virtual adicionado na seção "Como instalar a ferramenta Exchange"
6.015 de fevereiro de 2007Reconfiguração da seção "Lembretes mais tarde do que o esperado"
7.015 de fevereiro de 2007Informações sobre o download adicional para a máquina Virtual para o pacote da ferramenta de actualização de calendário do Microsoft Exchange
8.016 de fevereiro de 2007Adicionadas informações sobre as ferramentas de gerenciamento de sistema do Exchange na seção "O que fazer antes de executar a ferramenta Exchange"
8.119 de fevereiro de 2007Corrigido o nome de arquivo na seção "Como executar o Msextmzcfg.exe"
8.220 de fevereiro de 2007Espaço extra entre User_Name e nome_do_arquivo na seção "Conceder permissão de caixa de correio" script
9.020 de fevereiro de 2007Reconfiguração do artigo
10.020 de fevereiro de 2007Atualizações de metadados interno
10.120 de fevereiro de 2007Erro tipográfico corrigido
10.220 de fevereiro de 2007Erro tipográfico corrigido
10.320 de fevereiro de 2007Erro tipográfico corrigido
10.421 de fevereiro de 2007Erro tipográfico corrigido
11.022 de fevereiro de 2007Adicionadas informações sobre a versão 2 da ferramenta Exchange
11.122 de fevereiro de 2007Erro tipográfico corrigido
11.223 de fevereiro de 2007Tabela adicionada para indicar as revisões do artigo
12.026 de fevereiro de 2007Adicionadas informações sobre espaço de log de eventos e adicionadas informações sobre mensagens de erro e resoluções para esses erros
13.027 de fevereiro de 2007URL de download removido para informações de máquina virtual e adição de referência cruzada para 933185
14.028 de fevereiro de 2007Na seção "Problemas conhecidos", alterou o texto no primeiro marcador para incluir KB926666
15.027 de fevereiro de 2007Informações de máquina virtual adicionado
16.028 de fevereiro de 2007Adicionadas informações sobre o hotfix mais recente para a ferramenta de actualização de dados de fuso horário para Microsoft Office Outlook (Tzmove.exe) para a seção "para agendamento direto". Adição de referência cruzada para 933146
16.128 de fevereiro de 2007Corrigir marcas de tabela
17.001 de março de 2007Informações removidas do Exchange Server 5.5
18.005 de março de 2007Reescreveu a tabela de revisões
19.008 de março de 2007Adicionadas informações sobre a mensagem de erro "HRTestMailboxAccess"
19.113 de março de 2007Removido o parágrafo duplicado sobre o número de convidados em uma solicitação de reunião
19.219 de março de 2007Tabela atualizada de revisões
19.321 de março de 2007Informações de máquina virtual removido da seção "sobre a ferramenta Exchange"
19.403 de abril de 2007Seção de Introdução atualizado
19.504-ago-2007Título atualizado
21.006 de setembro de 2007Adicionadas informações sobre o artigo 941018 com uma ferramenta mais recente
21.107 de setembro de 2007Removido o link para o artigo da Base de Conhecimento desatualizado.

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 930879 - Última Revisão: 02/09/2016 02:13:00 - Revisão: 24.0

Microsoft Exchange Server 2007 Enterprise Edition, Microsoft Exchange Server 2007 Standard Edition, Microsoft Exchange Server 2003 Enterprise Edition, Microsoft Exchange Server 2003 Standard Edition, Microsoft Exchange 2000 Enterprise Server, Microsoft Exchange 2000 Server Standard Edition

  • kbhowto kbresolve kbexpertiseinter kbinfo kbmt KB930879 KbMtpt
Comentários