Cómo abordar el horario de verano con la herramienta de actualizar calendario de Exchange

INTRODUCCIÓN

Horario de verano es un sistema para establecer los relojes con antelación para que el amanecer y el atardecer se produzcan en una hora posterior. El efecto es más de verano por la noche. Muchos países implementan el horario de verano. La mayoría de estos países tienen sus propias reglas y regulaciones para al horario de verano comienza y termina.

Las fechas del horario de verano (DST) pueden cambiar de un año a otro. Los usuarios de Microsoft Outlook tienen que actualizar su calendario de Outlook cada vez que cambian las reglas de DST. Se conocen las fechas entre las reglas de DST anteriores y las actuales reglas de DST en este artículo como "período de ampliación de DST".

En este artículo se describe las acciones que puede tomar para ajustar los elementos del calendario de Outlook que tienen lugar durante el período adicional DST. Este artículo también describe las acciones que debe realizar para actualizar elementos de calendario se almacenan en Microsoft Exchange Server según las nuevas reglas de DST. La solución que se presenta en este artículo incluye la herramienta de actualizar calendario de Microsoft Exchange ("la herramienta de Exchange").

Para obtener más información acerca de cómo prepararse para los cambios del horario de verano en 2007 (DST 2007) para todos los productos de Microsoft afectados, visite el siguiente sitio Web de Microsoft:En 2011, el gobierno ruso aprobó una ley para cancelar el horario de verano (DST). Para obtener más información, visite el siguiente sitio Web de Microsoft:Para obtener más información en ruso, visite el siguiente sitio Web de Microsoft:

Más información

Acerca de la herramienta de Exchange

Después de instalar las actualizaciones de horario de verano para Microsoft Windows, todas las citas anteriores que aparecen durante los períodos de cambio de horario de verano se mostrarán incorrectamente una hora más tarde. Esto es cierto para las citas periódicas y de instancia única. Debe actualizar estas citas para que se mostrarán correctamente en Outlook, en Microsoft Office Outlook Web Access y en las aplicaciones que se basan en Collaboration Data Objects (CDO).

Outlook proporciona una herramienta que se denomina la herramienta de actualizar datos de zona horaria para Microsoft Office Outlook ("la herramienta de Outlook"). Esta herramienta permite a los usuarios actualizar sus propios calendarios.

Para obtener más información acerca de la herramienta de actualizar datos de zona horaria, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
931667 cómo abordar los cambios de horario de verano en 2007 utilizando la herramienta de actualizar datos de zona horaria para Microsoft Office Outlook

La herramienta de actualizar calendario de Exchange ("la herramienta de Exchange") le ayuda a evitar las dificultades que se enfrentan los administradores en la implementación de la herramienta de Outlook ampliamente a todos los usuarios y para asegurarse de que cada usuario ejecute correctamente la herramienta de Outlook.

Descripción general de la herramienta de Exchange

La herramienta de Exchange consta de dos archivos ejecutables independientes. Estos archivos se describen en la tabla siguiente.
Nombre del archivo
Descripción
Msextmz.exeEste archivo ejecutable extrae información de zona horaria de los buzones en un servidor que ejecuta Exchange Server. Este archivo ejecutable también actualiza los calendarios del buzón de una lista especificada de usuarios.
Msextmzcfg.exeEste archivo ejecutable es una herramienta de configuración que realiza la mayoría de los pasos que intervienen en la actualización de un servidor de Exchange Server.

Acerca de la nueva versión de la herramienta de Exchange

En función de los comentarios de los clientes, una nueva versión de la herramienta de Exchange se publicó el 13 de agosto de 2007. En este artículo se refiere a la nueva versión de la herramienta de Exchange. Si está ejecutando una versión anterior de la herramienta de Exchange, desinstálelo e instale la nueva versión.

La nueva versión de la herramienta de Exchange incluye las siguientes mejoras:
  • Los procesos de actualización de calendario y de extracción de zona horaria se aceleró doblada en cuatro.
  • La interfaz de usuario para la herramienta de configuración está más optimizado e intuitivo.
  • La capacidad de actualizar las salas de conferencia y los buzones de recursos ahora está integrada en la herramienta de configuración.
  • La capacidad de actualizar los buzones de usuario ahora está integrada en la herramienta de configuración.
  • Un documento de solución de problemas es ahora incluida en la herramienta de Exchange y está integrado en la herramienta de configuración.
  • Se han mejorado el algoritmo de extracción de zona horaria y capacidades de manejo de errores.
  • El proceso de registro es más fácil de utilizar.

Riesgo de ejecutar la herramienta de Exchange

Cuando ejecuta la herramienta de Exchange, hay un riesgo que no se actualicen correctamente las citas de instancia única. Por ejemplo, pueden actualizarse las citas de instancia única para que un usuario creado después de que el sistema operativo se ha actualizado incorrectamente.

Para reducir este riesgo, utilice uno de los métodos siguientes:
  • Reducir el intervalo entre el momento en que actualice los equipos cliente y el tiempo que actualiza los calendarios del buzón.
  • Si los equipos de la organización se actualizaron hace mucho tiempo, utilice la configuración de Sólo actualizar reuniones periódicas en
    Configuración avanzada.

    Normalmente, la gente no cree citas muchos meses de antelación. Por lo tanto, si las actualizaciones del DST se instalaron muchos meses antes, la mayoría de las reuniones de instancia única que caen en el período adicional DST se habrá creada utilizando las reglas de transición de DST nuevas. Estas reuniones no tengan que actualizarse.
  • Si conoce la fecha exacta cuando se actualizaron todos los equipos cliente, utilice el valor de Fecha de revisión de sistema operativo
    Configuración avanzada. Si se especifica una fecha, la herramienta de Exchange no actualiza las citas de instancia única creadas después de esa fecha.
Nota: Si ejecuta la herramienta de Outlook o Exchange en un equipo cliente que está ejecutando Windows Vista, y ejecutar la herramienta con buzones donde la zona horaria es hora estándar de Nueva Zelanda, debe ejecutar la herramienta una segunda vez en o después del 1 de enero de 2008. Para obtener más información, consulte la sección "Problemas conocidos".

Opciones para actualizar los buzones

En la tabla siguiente se muestra cinco opciones que puede utilizar para actualizar los buzones de usuario para utilizar las reglas de zona horaria de DST 2007.
Opción
Profesionales
Inconvenientes
Distribuir la herramienta de Outlook a cada usuario y, a continuación, indicar a los usuarios actualizar sus propios buzones.Esta opción evita el riesgo asociado con la ejecución de la herramienta de Exchange.Es difícil garantizar que todos los usuarios ejecutarán la herramienta de Outlook correctamente y de forma oportuna.

Los usuarios que no tengan Outlook será incapaces de ejecutar la herramienta de Outlook.

Debe realizar un esfuerzo de formación adicional para disminuir la confusión de los usuarios.
Ejecute la herramienta de Exchange contra afectados todos los usuarios y servidores.
Esta opción proporciona una experiencia simplificada para los usuarios.
Hay un riesgo asociado con la ejecución de la herramienta de Exchange, como se describe en la sección "Riesgo de ejecutar la herramienta de Exchange".
Ejecute la herramienta de Exchange para actualizar sólo las citas periódicas. Permitir a los usuarios actualizar las citas de instancia única en sus propios buzones mediante la herramienta de Outlook.Hay menos riesgo de citas de instancia única que se ha actualizado correctamente.Los inconvenientes de ejecutar la herramienta de Outlook se combinan con los inconvenientes de ejecutar la herramienta de Exchange.
Ejecute la herramienta de Exchange ni la herramienta de Outlook. Pedir a los usuarios para examinar sus calendarios y vuelvan a anotar las citas según sea necesario.Esta opción evita el riesgo asociado con la ejecución de la herramienta de Exchange.
A menos que todos los usuarios vuelvan a escribir todas las citas afectadas, algunos elementos del calendario se estarán desfasada una hora durante el período adicional DST.

Debe realizar un esfuerzo de formación adicional para disminuir la confusión de los usuarios.
Distribuir la herramienta de Outlook a cada usuario y, a continuación, indicar a los usuarios actualizar sus propios buzones. A continuación, utilice el modo de extracción de zona horaria de la herramienta de Exchange para determinar si los usuarios están ejecutando la herramienta de Outlook.


Si los usuarios no están ejecutando la herramienta de Outlook, el administrador puede ejecutar la herramienta de Exchange.
Esta opción reduce el riesgo de que los usuarios no ejecuten la herramienta de manera oportuna, y evita el riesgo asociado con la ejecución de la herramienta de Exchange.No es una opción si los usuarios ejecutan Microsoft Office Outlook 2007.

Cómo instalar la herramienta de Exchange

La herramienta de actualizar calendario de Exchange está disponible para su descarga en forma de un archivo ejecutable autoextraíble (Msextmz.exe). Esta herramienta está disponible para su descarga desde Microsoft Download Center:

Download Descargue ahora el paquete de la herramienta de actualizar calendario de Exchange.

Se crea una máquina virtual para ayudarle a instalar y utilizar la herramienta de Exchange. La máquina virtual se basa en Microsoft Windows Server 2003, Outlook 2007, Microsoft Office Excel 2007 y Microsoft Office Word 2007. La máquina virtual funciona en Microsoft Virtual PC 2004 y en Virtual Server 2005 R2.

Para obtener más información sobre la máquina virtual para la herramienta de actualizar calendario de Exchange, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
933185 una máquina virtual está disponible para ayudarle a implementar las actualizaciones de calendario de horario de verano 2007 en una organización de Exchange

Para obtener más información acerca de cómo descargar archivos de soporte técnico de Microsoft, haga clic en el número de artículo siguiente para ver el artículo en Microsoft Knowledge Base:
119591 cómo obtener archivos de soporte técnico de Microsoft desde los servicios en línea
Microsoft analizó este archivo en busca de virus. Microsoft ha utilizado el software de detección de virus más reciente que estaba disponible en la fecha en que se publicó el archivo. El archivo se almacena en servidores seguros que ayudan a evitar cambios no autorizados en el archivo.

Idiomas admitidos por la herramienta de Exchange

La herramienta de Exchange sólo está disponible en inglés. La herramienta se ejecutará sólo en un equipo inglés (Estados Unidos).

Versiones de Exchange Server que son compatibles con la herramienta de Exchange

La herramienta de Exchange puede actualizar los buzones en las siguientes versiones de Exchange Server:
  • 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 Server Enterprise Edition
  • Microsoft Exchange 2000 Server Standard Edition

Sistemas operativos que son compatibles con la herramienta de Exchange

La herramienta de Exchange se ejecutará en las versiones de 32 bits de los sistemas operativos siguientes:
  • Microsoft Windows Server 2003
  • Microsoft Windows XP
  • Windows Vista

Qué hacer antes de ejecutar la herramienta de Exchange

Instalar actualizaciones

Antes de ejecutar la herramienta de Exchange, asegúrese de que los equipos cliente y servidor se actualizan correctamente. Para ello, instale la actualización de DST de Windows en los clientes y en servidores.
Para obtener más información, haga clic en el siguiente número de artículo para verlo en Microsoft Knowledge Base:
942763 diciembre de 2007 acumulativo de actualizaciones para Microsoft Windows sistemas operativos


Si está ejecutando Microsoft Exchange Server 2003 Service Pack 2 (SP2), instale una o ambas de las siguientes actualizaciones, según corresponda a su organización:
  • Actualización 911829
  • Actualización 924334
Para obtener más información acerca de estas actualizaciones, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
911829 recibe un mensaje de error al intentar realizar tareas de edición o debe hacer clic para habilitar el marco de composición en Outlook Web Access

924334 El formulario Redactar mensaje deja de responder después de instalar Internet Explorer 7.0 y el control S/MIME en un cliente de Outlook Web Access en Exchange Server 2003
Si los usuarios están dentro del Jerusalén, Brasil Central o Sudamérica zona de horaria, lea las instrucciones en el siguiente artículo de Microsoft Knowledge Base:

943390 elementos de calendario de Outlook algunas se restablecen incorrectamente cuando se utiliza la herramienta de actualización de datos de zona horaria de Outlook para adaptarse a los cambios de horario de verano en determinadas zonas horarias

Compruebe los requisitos del sistema

Debe ejecutar la herramienta de Exchange sólo en un equipo para que las condiciones siguientes son verdaderas:
  • El equipo tiene el Service Pack 2 (SP2) de Microsoft Office Outlook 2003 o Microsoft Office Outlook 2007 instalado.
  • El equipo tiene la herramienta de datos de zona horaria de Outlook instalado.
  • Microsoft.NET Framework versión 2.0 está instalado en el equipo cliente.
No se puede ejecutar la herramienta de Exchange en un equipo que ejecuta Exchange Server o las herramientas de administración del sistema de Exchange. Si intenta instalar la herramienta de Exchange en un equipo que ejecuta Exchange Server o las herramientas de administración del sistema de Exchange, recibirá el siguiente mensaje de error:
No se puede instalar la herramienta de actualizar calendario de Microsoft Exchange con Microsoft Exchange.

Compruebe los permisos y otros requisitos de usuario

Compruebe que las condiciones siguientes son verdaderas:
  • Administrar permisos en cada base de datos de mensajes (MDB) de Exchange Server se actualizan el almacén de información.
  • Se actualizan los permisos Enviar como para todos los buzones.
  • Se actualizan los permisos de acceso al buzón completos para todos los buzones.
  • Se conceden permisos de administrador local en el equipo que está ejecutando la herramienta de Exchange.

Acerca de la secuencia de comandos "Conceder permiso de buzón"

Puede utilizar la secuencia de comandos de ejemplo GrantMailboxPermission.vbs para conceder permisos de acceso total al buzón y enviar como usuario a todos los buzones de un dominio.

Esta secuencia de comandos se puede ejecutar un administrador de Exchange Server en un equipo que está ejecutando Exchange 2000 Server o Exchange Server 2003. No se puede ejecutar esta secuencia de comandos en un equipo que está ejecutando Exchange Server 2007. Sin embargo, puede utilizar el Shell de administración de Exchange para conceder los permisos necesarios.

El código de la secuencia de comandos de vbs se proporciona en la sección "Referencias". En la tabla siguiente se describe los dos modos en que se ejecuta esta secuencia de comandos.
Modo de
Comando
Descripción
AgregarCScript GrantMailboxPermission.vbs – agregar nombre_dominio \ User_Name nombre_archivoEste comando concede el nombreDeDominio
\ Los permisos de acceso total al buzón y enviar como de usuario User_Name para los buzones de usuario enumerados en el archivo de entrada.

El archivo de entrada debe ser un archivo de texto que contiene los nombres de dominio heredados de los buzones de usuario. Estos nombres deben delimitarse con retorno de carro + salto de línea (CRLF).

La secuencia de comandos genera un archivo GrantMailboxPermission.log. Este archivo es un registro de los buzones que se procesaron. La primera línea del archivo de registro es nombreDeDominio
\ NombreUsuario quién se ha concedido acceso . No elimine este archivo. Este archivo se utiliza en el modo quitar.


Si un acceso explícito "Denegar" se asigna al usuario, la secuencia de comandos registra la información en un archivo denominado "GrantMailboxPermission.err". La secuencia de comandos no concede ni cambiar el permiso.

Si el usuario forma parte de un grupo de seguridad que se ha asignado acceso "Denegar", la secuencia de comandos concede permisos de acceso total al buzón y enviar como. Sin embargo, el usuario podrá iniciar sesión en el buzón. Todos los errores se registrará en el archivo GrantMailboxPermission.err.
QuitarCScript GrantMailboxPermission.vbs – quitarEste comando quita los permisos acceso total al buzón y enviar como para los buzones que se enumeran en el archivo GrantMailboxPermission.log de nombre_dominio \ User_Name
usuario. NombreDeDominio \
NombreUsuario usuario se especifica en el archivo GrantMailboxPermission.log.
Notas:
  • Al ejecutar esta secuencia de comandos en el equipo que ejecuta Exchange Server, la secuencia de comandos devuelve un carácter de punto (.) cuando la secuencia de comandos procesa correctamente un usuario. La secuencia de comandos devuelve un carácter de signo de exclamación (!) cuando la secuencia de comandos no procesa correctamente un usuario.
  • El archivo de salida del modo de extracción de zona horaria no se puede utilizar como un archivo de entrada para esta secuencia de comandos. Para crear el archivo de entrada para esta secuencia de comandos, pegar el contenido del archivo de salida del modo de extracción de zona horaria en el Bloc de notas, guardar el contenido como un nuevo documento y, a continuación, utilice el nuevo documento como archivo de entrada.

Cómo utilizar la herramienta de Exchange

Para utilizar la herramienta de Exchange, inicie la herramienta de configuración de actualización de calendario de Exchange (Msextmzcfg.exe). Este programa le ayudará con todo el proceso de actualización de calendarios.

Ejecutar el proceso de extracción de zona horaria

Para actualizar los calendarios del buzón, debe determinar la zona horaria de los calendarios. El proceso de extracción de zona horaria examina las propiedades y las citas de los calendarios del buzón para determinar sus zonas horarias. Para ejecutar el proceso de extracción de zona horaria, siga estos pasos:
  1. En la página de bienvenida, haga clic en siguiente.


    Nota: La página de bienvenida presenta la herramienta de configuración y describe los permisos que se requieren para ejecutar la herramienta. La página también proporciona un vínculo a este artículo.
  2. Especificar la configuración de la herramienta de configuración. Se recomienda que asigne al menos 200 megabytes (MB) de espacio en disco para el registro.

    Si desea cambiar la configuración predeterminada, haga clic en
    Configuración avanzada. Para obtener más información acerca de la configuración avanzada, consulte la tabla que sigue a este procedimiento.
  3. Seleccione los servidores de Exchange en el bosque del servicio de directorio Active Directory local que desea actualizar. A continuación, haga clic en
    Siguiente para iniciar el proceso de extracción de zona horaria.

    Nota: Si ya ha realizado la extracción de zona horaria, puede omitir este paso si hace clic en Omitir.

    Observe que se muestra una barra de estado, un vínculo para el registro de salida y una visualización en tiempo real del proceso de extracción de zona horaria. Una vez completado el proceso de extracción de zona horaria, haga clic en siguiente.

    Si se producen errores, se muestra un vínculo al documento de solución de problemas.
  4. Configurar la página con n franjas horarias de los buzones y, a continuación, haga clic en siguiente para analizar los elementos de calendario.

    Nota: Si la herramienta encuentra que los usuarios que no tienen propiedades de nivel de buzón que indican su zona horaria, la herramienta examina reales reuniones y citas dentro de esos calendarios para determinar la zona horaria. Puede especificar el número de elementos de calendario a través del cual desea que la herramienta de configuración para analizar. Cuanto mayor sea el número de elementos que se especifican, más tiempo tardará la digitalización.
  5. En la página de resolver nombres para mostrar zona horaria desconocida , la herramienta le pide que asigne las zonas horarias que no reconoce la herramienta para una zona conocida del sistema operativo. Después de hacer esto, haga clic en
    Siguiente
  6. Si encuentra que la herramienta de configuración de los usuarios que tienen varias zonas horarias, deberá resolver el conflicto manualmente especificando una zona horaria con la que se va a actualizar el calendario del usuario. Después de hacer esto, haga clic en
    Siguiente.
  7. En la página Guardar buzón DNs con sin resolver las zonas horarias , los restantes usuarios que aún no tengan ninguna información de zona horaria o que todavía tienen información de zona horaria en conflicto se registran en un archivo de registro independiente. Haga clic en Siguiente.
El proceso de extracción de zona horaria está completado. La lista de usuarios y de las zonas horarias extraídas se encuentra en el archivo de salida (Output.txt) en el directorio de instalación.

Configuración avanzada

La tabla siguiente describe la configuración avanzada que puede configurar en el paso 2 del procedimiento anterior.
ConfiguraciónFuncionalidadEscenarioConsideracionesAplicabilidad
Actualizar sólo reuniones periódicasEsta opción actualiza sólo las reuniones periódicas que se ven afectadas por el cambio de horario de verano. Las citas de instancia única que hay en el período adicional DST no se actualizan independientemente de si se deben actualizar.Si los equipos de la organización se actualizaron hace mucho tiempo, utilice este ajuste.


Normalmente, la gente no cree citas muchos meses de antelación. Por lo tanto, si las actualizaciones del DST se instalaron muchos meses antes, la mayoría de las reuniones de instancia única que caen en el período adicional DST se habrá creada utilizando las reglas de transición de DST nuevas. Estas reuniones no tengan que actualizarse.
Si un usuario crea una reunión de instancia única muchos meses de antelación, esta reunión no se actualiza si se especifica este valor.Esta configuración se aplica a todos los buzones, todas las salas de conferencia y todos los calendarios de usuario.
Fecha de instalación de parches de sistema operativoEsta configuración especifica que no se actualizan las citas de instancia única que se crea o se actualiza después de la fecha que especifique.Si conoce la fecha exacta cuando se actualizaron todos los equipos cliente, utilice este ajuste.

Al hacerlo, no se actualizan las reuniones que se crean después de instalar la actualización. Estas reuniones forman parte de las nuevas reglas de zona horaria.
Esta configuración es efectiva sólo cuando los equipos cliente se actualizaron en menos de 24 horas, y cuando hay alta penetración de la actualización. (Hay penetración alto cuando es el porcentaje de equipos de la organización que se han actualizado en la gama alta del 90 por ciento.)

Además, los administradores pueden especificar fecha sólo una actualización. Deben actualizarse las reuniones que se crean en las zonas horarias que corresponden a actualizaciones específicas a determinados conjuntos de zonas horarias.


La implicación para salas de conferencia es que sólo actualizan las salas son en las zonas horarias específicas de conferencia.

La implicación de los buzones de usuario es que, si la opción SuppressExchange o la
Actualizarán buzones de usuario que pertenecen a las zonas horarias específicas, no se especifica la opción SuppressAll .
Esta configuración se aplica a todos los buzones, todas las salas de conferencia y todos los calendarios de usuario.
SuppressExchange y
ProfundidadMáx
Esta configuración hace que todas las citas en el calendario de un usuario que se ven afectados por el cambio de DST actualizarse independientemente de si el usuario es el organizador de dichos elementos del calendario.

Si el usuario es el organizador de un elemento del calendario, no se envían actualizaciones a los asistentes que tienen buzones de Exchange. Las actualizaciones se envían a los asistentes que no tengan buzones de Exchange.

La opción MaxDepth especifica el nivel de expansión de lista de distribución que se realiza para determinar a qué asistentes tienen buzones de Exchange y que los asistentes no.
Utilice esta configuración si no desea que los usuarios de Exchange para recibir actualizaciones de reunión de los organizadores de reuniones que se ven afectados por el período adicional DST.

La
Opción SuppressExchange es mejor que el
Opción SuppressAll si la organización tiene sistemas de calendario que no sea de Exchange Server y si se programan reuniones con asistentes que son externos a la organización.
No hay actualizaciones de reunión se envían, excepto a los usuarios de sistemas distintos de Exchange. Por lo tanto, para asegurarse de que las copias de la misma sesión se actualizan para todos los posibles asistentes, deben actualizarse todos los buzones de la organización.

Esta condición puede aumentar significativamente el número de buzones que tengan que actualizarse. Por lo tanto, se pueden aumentar los tiempos de procesamiento.

Cuando las listas de distribución grandes, anidada en la lista de asistentes, es un proceso costoso para determinar la lista de asistentes a una reunión y determinar si los asistentes tienen buzones de Exchange. Si se especifica esta opción y establece un alto valor para el parámetro ProfundidadMáx , puede colocarse una carga significativa en los controladores de dominio.
Esta configuración sólo se aplica a los buzones de usuario.
SuppressAllEsta configuración hace que todas las citas en el calendario de un usuario que se ven afectados por el cambio de DST actualizarse independientemente de si el usuario es el organizador de dichos elementos del calendario.

Si el usuario es el organizador de un elemento del calendario, no se envían actualizaciones a los asistentes.
Utilice esta configuración si no desea que los asistentes para recibir actualizaciones de reunión de los organizadores de reuniones que se ven afectados el período adicional DST.No hay actualizaciones de reunión se envían. Por lo tanto, para asegurarse de que las copias de la misma sesión se actualizan para todos los posibles asistentes, deben actualizarse todos los buzones de la organización.

Esta condición puede aumentar significativamente el número de buzones que tengan que actualizarse. Por lo tanto, se pueden aumentar los tiempos de procesamiento.

Los asistentes que no tengan buzones de Exchange no reciben actualizaciones. No se pueden actualizar sus citas según el sistema de correo electrónico que se está ejecutando y las acciones que realiza su administrador.
Esta configuración sólo se aplica a los buzones de usuario.

Actualización de salas de conferencias y buzones de recursos

Debe actualizar las salas de conferencia y los buzones de recursos para evitar conflictos de reserva. Para ello, siga estos pasos:
  1. En la página especificar recursos y calendarios de sala de conferencias , escriba o pegue la lista de alias de salas de conferencias en su organización. Haga clic en resolver para validar los alias y, a continuación, haga clic en siguiente.
  2. En la página de resolver las zonas horarias de recursos y calendarios de sala de conferencia , la herramienta le pide que especifique manualmente la zona horaria de una sala de conferencias si la sala de conferencias no tiene una zona horaria. Hágalo y, a continuación, haga clic en siguiente.
  3. Se muestra una página de aviso para recordarle que la herramienta está a punto de actualizar los calendarios. Haga clic en Siguiente.
  4. Observe que se muestra una barra de estado, un vínculo para el registro de salida y una visualización en tiempo real de los resultados de la herramienta. Haga clic en
    Siguiente.

    Si se producen errores, se muestra un vínculo al documento de solución de problemas en la parte inferior de esta página.

Actualizar el calendario del buzón de usuario

Para ello, siga estos pasos:
  1. En la página configuración para actualizar calendarios del buzón de usuario , configure la configuración de la actualización.

    Si no se ha especificado el SuppressExchange o
    SuppressAll avanzadas de configuración, seleccione las zonas horarias afectadas por DST. En caso contrario, seleccione todas las zonas horarias.

    Haga clic en
    Siguiente.
  2. Se muestra una página de aviso para recordarle que la herramienta está a punto de actualizar los calendarios. Haga clic en Siguiente.
  3. Observe que se muestra una barra de estado, un vínculo para el registro de salida y una visualización en tiempo real de los resultados de la herramienta. Una vez completada la actualización, haga clic en siguiente.

    Si se producen errores, se muestra un vínculo al documento de solución de problemas en la parte inferior de esta página.
  4. Haga clic en Finalizar.

Herramienta log files de Exchange y sus subdirectorios

Archivos de registro

La herramienta de Exchange crea los siguientes archivos de registro en el directorio de instalación:
  • Output.txt

    Este archivo contiene una lista de todos los buzones de usuario que se han extraído junto con su información de zona horaria.
  • TimeZoneExtraction.log

    Este registro contiene la salida combinada del proceso de extracción de zona horaria para todos los servidores.
  • ResourceUpdate.log

    Este registro contiene el resultado del proceso de actualización para las salas de conferencia y los buzones de recursos.
  • UserUpdate.log

    Este registro contiene la salida combinada del proceso de actualización de buzones de usuario para todos los servidores.
  • CalendarScan.log

    Este registro contiene la salida combinada del proceso de análisis de calendario para todos los servidores.
  • ConflictUsers.txt

    Este registro contiene una lista de usuarios que tienen zonas horarias en conflicto. Por ejemplo, propiedades de buzones de los usuarios indican que pertenecen a varias zonas horarias.
  • NonExistent.txt

    Este registro contiene una lista de usuarios que no tienen ninguna información de zona horaria.

Subdirectorios

La herramienta de Exchange crea los siguientes subdirectorios en el directorio de instalación:
  • Recurso

    Éste es el subdirectorio de trabajo para el proceso de actualización para las salas de conferencia y los buzones de recursos. Este directorio contiene los archivos siguientes:
    • Msextmz.log

      Éste es el archivo de salida de la herramienta de Exchange para el proceso de actualización.
    • Errors.txt

      Este archivo contiene la lista de buzones.
    • Processed.txt

      Este archivo contiene la lista de buzones que se actualizaron correctamente.
    Nota: Todos los subdirectorios de trabajo contienen estos archivos.

    El subdirectorio de recursos también contiene el subdirectorio siguiente:
    • Archivos de registro

      Este subdirectorio contiene los registros de actualización para cada buzón que se actualizó correctamente. Cada registro de actualización debe contener una lista de las reuniones que se actualizaron.
  • Server_Name

    Hay un subdirectorio para cada servidor en el que se realizó el proceso de extracción de zona horaria o una actualización del calendario. Estos subdirectorios contienen los siguientes subdirectorios:
    • CalendarScan

      Éste es el subdirectorio de trabajo para el proceso de exploración del calendario.
    • Extraer

      Éste es el subdirectorio de trabajo para el proceso de extracción de zona horaria.
    • Actualización

      Éste es el subdirectorio de trabajo para el proceso de actualización de buzones de usuario. Contiene el subdirectorio siguiente:
      • Archivos de registro

        Este subdirectorio contiene los registros de actualización para cada buzón que se actualizó correctamente. Cada registro de actualización debe contener una lista de las reuniones que se actualizaron.

Qué hacer después de ejecutar la herramienta de Exchange

Después de terminar de ejecutar la herramienta de Exchange contra todos los servidores de Exchange en su entorno, se aplican las actualizaciones apropiadas de DST de Exchange Server. La siguiente lista está organizada por nivel de Exchange Server versión y service pack. Instalar las actualizaciones para su versión de Exchange Server.

Exchange Server 2007
940006 descripción de paquete acumulativo de actualizaciones 4 para Exchange Server 2007

El paquete acumulativo de actualizaciones 4 para Exchange Server 2007 incluye las correcciones de DTS siguientes:
  • 937656 experimenta problemas en Outlook Web Access para Exchange 2007 después del horario de verano (DST) comienza en Nueva Zelanda en 2007

  • 932561 las citas que se envían desde una organización de Exchange a otro mediante Exchange 2007 pueden ser incorrectas en una hora si una organización se encuentra en la zona horaria de Australia occidental

Exchange Server 2003 SP2
Actualización 926666 para los cambios de horario de verano de 2007 para Exchange 2003 Service Pack 2

Actualización de 931915 de los cambios de horario de verano de Terranova en 2007 para Exchange Server 2003 Service Pack 2

929895 las citas que se envían entre las distintas organizaciones de Exchange Server pueden ser incorrectas en una hora cuando una de las organizaciones está en la zona horaria de Australia occidental

937653 experimenta uno o más problemas en Exchange Server 2003 tras el período de horario de verano de Nueva Zelanda cambia en 2007

Exchange Server 2003 SP1
940123 experimenta problemas en Exchange 2003 Service Pack 1 después del horario de verano (DST) comienza en Nueva Zelanda en 2007

Problemas conocidos

  • La herramienta de Exchange no actualiza las reuniones periódicas que se crean en Outlook Web Access

    Si instala las actualizaciones de Exchange Server en el servidor de Exchange antes de actualizar los buzones, la herramienta de Exchange no actualiza las reuniones periódicas que se crean en Outlook Web Access.


    Para resolver este problema, quitar las actualizaciones de Exchange Server, ejecute la herramienta de Exchange y, a continuación, vuelva a instalar las actualizaciones de Exchange Server en el servidor de Exchange.
  • Exchange 2007 debe reiniciarse después de ejecutar la herramienta de Exchange

    Para mostrar correctamente los elementos de calendario, debe reiniciar los servicios de Exchange después de ejecutar la herramienta de Exchange para Outlook Web Access en Exchange 2007.
  • No puede instalar la herramienta de Exchange

    La herramienta de Exchange no se instala correctamente si existe alguna de las siguientes claves del registro:
    • HKEY_CLASS_ROOT\Outlook.Application.9
    • HKEY_CLASS_ROOT\Outlook.Application.10
    En este escenario, recibirá el siguiente mensaje de error cuando intenta instalar la herramienta de Exchange:
    Herramienta de reajuste de calendario de Exchange Server no puede instalarse con esta versión de Microsoft Outlook.
    Para evitar este problema, elimine estas claves del registro, instalar la herramienta de Exchange y, a continuación, restaurar las claves del registro.

    Importante: esta sección, el método o la tarea contiene pasos que indican cómo modificar el registro. Sin embargo, pueden producirse problemas graves si modifica incorrectamente el registro. Por lo tanto, asegúrese de que sigue estos pasos cuidadosamente. Para una mayor protección, haga una copia de seguridad del registro antes de modificarlo. Entonces, puede restaurar el registro si se produce un problema. Para obtener más información acerca de cómo hacer copia de seguridad y restaurar el registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    322756 cómo hacer copia de seguridad y restaurar el registro en Windows
  • Hay un límite en el número de buzones que pueden procesarse por servidor

    En el modo de lista de usuarios y en modo de extracción de zona horaria, Msextmz.exe puede procesar sólo 65.535 buzones en un servidor. Si el servidor tiene más de 65.535 buzones, algunos buzones no se procesan.
  • Calendarios de carpetas públicas no se actualizan

    La herramienta de Exchange no actualiza los calendarios de carpetas públicas. Para obtener información acerca de cómo actualizar un calendario de carpeta pública, consulte la documentación de la herramienta de Outlook.
  • Puede ejecutar la herramienta de Outlook y la herramienta de Exchange en el mismo entorno

    Si ejecuta la herramienta de Exchange en un buzón que ya se ha actualizado la herramienta de Outlook, o viceversa, no experimenta efectos secundarios. Sin embargo, si ejecuta la herramienta de Exchange, no hay ninguna necesidad de los usuarios ejecutar la herramienta de Outlook por separado.
  • Avisos de reunión no aparecen después de lo esperado

    No encuentro los avisos para los buzones actualizados por la herramienta de Exchange no se actualizan si Outlook nunca se ha conectado al buzón en modo en línea. En esta situación, los avisos aparecen una hora después de lo esperado.

    Si Outlook nunca se ha conectado en modo en línea, debe ajustar los avisos incorrectos para las citas del calendario que encuentre la herramienta de Outlook. Además, no existe la carpeta de búsqueda avisos en el buzón. Por lo tanto, la herramienta no actualiza los elementos de correo electrónico, contactos u otros avisos.


    Por ejemplo, la herramienta no actualiza el aviso en un elemento de correo electrónico de seguimiento en un momento en el futuro. La herramienta no actualiza también el aviso en un elemento de tarea con un aviso.
  • Recibe un mensaje de error: "no se puede instalar porque se detectaron versiones anteriores de 'Herramienta de actualizar calendario de Microsoft Exchange'. Desinstálela y vuelva a ejecutar el programa de instalación"

    Si instaló previamente la versión 1.0 de herramienta de actualizar calendario de Exchange, debe desinstalar esta versión antes de instalar la herramienta de actualizar calendario de Exchange versión 2.0.

    Versión de la herramienta de actualizar calendario de Exchange 1.0 se distribuyó como un archivo ejecutable autoextraíble que contenía dos paquetes .msi (Msextmz.msi y Msextmzcfg.msi). Debe desinstalar ambos paquetes antes de instalar la versión 2.0 de la herramienta de Exchange.

    Si sigue experimentando problemas al instalar la versión 2.0 de la herramienta de Exchange, vuelva a instalar y desinstalar la versión 1.0 de la herramienta de Exchange. Hacerlo mediante los paquetes .msi en lugar de mediante la característica Agregar o quitar programas en Panel de Control. A continuación, reinicie el equipo y, a continuación, instale la versión 2.0 de la herramienta de Exchange.

    Si este procedimiento no funciona, extraiga los archivos binarios directamente los paquetes MSI.
  • Al ejecutar las herramientas de actualización de Outlook o Exchange, las citas están desfasadas una hora en los buzones donde la zona horaria es hora estándar de Nueva Zelanda

    Este comportamiento se produce cuando se cumplen los siguientes escenarios:
    • Ejecutar las herramientas de actualización de Outlook o Exchange en un equipo que está ejecutando Windows Vista.
    • La zona horaria de los buzones que se están actualizando es hora estándar de Nueva Zelanda.
    Para evitar este problema, debe ejecutar las herramientas de actualización de Outlook o Exchange con los buzones una segunda vez en o después del 1 de enero de 2008.

    Este comportamiento se produce porque la información de zona horaria de controladores de Windows Vista forma diferente que en otras versiones de Windows lo hacen. Si no ejecuta las herramientas de actualización de Outlook o Exchange otra vez en o después del 1 de enero de 2008, todas las citas del segundo evento DST será apagado en una hora. El segundo evento DST incluye las fechas del 16 de marzo de 2008 hasta el 6 de abril de 2008.

    Si no desea esperar hasta el 1 de enero de 2008 para actualizar las citas del segundo evento DST, puede ejecutar las herramientas de actualización de Outlook o Exchange desde un equipo que ejecuta Windows XP o Windows Server 2003.
  • Se cambia una fecha en el formato MM/DD/AAAA en el formato DD/M/aaaa

    Establezca la opción Fecha de revisión del sistema operativo en la herramienta de actualizar calendario de Exchange. Al hacerlo, la herramienta de actualizar calendario de Exchange no funciona correctamente. Este problema se produce porque se cambia el formato de fecha MM/DD/AAAA a DD/M/aaaa.

    Además, se graba un mensaje de error similar al siguiente en el registro de errores:
    [28/02/2008 7:10:21 AM] [776]: wmain: error al leer configuración - error 0 x 80070057.
    Este problema se produce debido a una opción incorrecta en la sección siguiente de los buzones de correo de ejemplo. INI del servidor.
    ServerDN = /O=OrgName/OU=AdminGroup/cn=Configuration/cn=Servers/cn=ServerName LogDirectory = C:\Program Files\MSExTmz\ServerName\Update\LogFiles\ 
    ErrorFile = C:\Program Files\MSExTmz\ServerName\Update\errors.ServerName.txt
    ProcessedFile = C:\Program Files\MSExTmz\ServerName\Update\processed.ServerName.txt
    LogFile = C:\Program Files\MSExTmz\ServerName\Update\msextmz.ServerName.log
    SystemPatchDate = 2/28/2008
    DebugFile = C:\Program Files\MSExTmz\debug\ServerName.debug.bin
    PerMailboxTimeLimit = 15
    PostMailboxDelay = 0
    RebaseOptions = 171
    InputFile = C:\Program Files\MSExTmz\ServerName\Update\Mailboxes.ServerName.txt

    Observe que la línea "SystemPatchDate" contiene la fecha "28/2/08". Esta fecha debe estar en el formato DD/MM/aaaa.

    Para evitar este problema, no utilice la opción Fecha de revisión del sistema operativo . Nº de error: 129210 (Exchange12)

Referencias

La secuencia de comandos "Conceder permiso de buzón"

Option Explicit' For FileSystemObject
Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8
Const TristateTrue = -1
Const TristateUseDefault = -2
Const TristateFalse = 0

'Permission Type: Allow or Deny
Const ADS_ACETYPE_ACCESS_ALLOWED = &H0
Const ADS_ACETYPE_ACCESS_DENIED = &H1
Const ADS_ACETYPE_ACCESS_ALLOWED_OBJECT = &H5
Const ADS_ACETYPE_ACCESS_DENIED_OBJECT = &H6

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_SCOPE_SUBTREE = 2
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

'Microsoft Exchange Server
Const EX_MB_SEND_AS_ACCESSMASK = &H00100
Const EX_FULLMAILBOX_ACCESSMASK = 1
Const EX_MB_SEND_AS_GUID = "{AB721A54-1E2F-11D0-9819-00AA0040529B}"

'Application Parameter Index
Const ARG_INDEX_MODE = 0
Const ARG_INDEX_USERNAME = 1
Const ARG_INDEX_FILENAME = 2
Const MIN_ARG = 1

Const MODE_INVALID = -1
Const MODE_ADD = 0
Const MODE_REMOVE = 1

Const ADD = "-ADD"
Const REMOVE = "-REMOVE"

'Application Const String
Const EMPTYSTRING = ""
Const ERROR_FILENAME = "GrantMailboxPermission.err"
Const OUTPUT_FILENAME = "GrantMailboxPermission.log"
Dim OUTPUT_DELIMITER
OUTPUT_DELIMITER = vbTab

'Logging file
Dim objFSO
Dim objfileError
Dim objfileOutput
Dim objfileImport
Dim objconn
Dim objCommand
Dim rootDSE
Dim sDomainContainer
Dim sUserLDAPPath
Dim objUser
Dim objSDNTsecurity
Dim objDACLNT
Dim objDACLEX
Dim objSDMailbox
Dim fFMA
Dim fSendAs
Dim AccessTypeForFMA
Dim AccessTypeForSendAS
Dim fAddedFMA
Dim fAddedSendAs
Dim fRemovedFMA
Dim fRemovedSendAs
Dim sArraySplit
Dim sOneRow
Dim sGrantedUser
Dim dArgCount
Dim cScriptMode
Dim dArgExpected
Dim fOneError

On Error Resume Next
'Parameter Verification
dArgCount = Wscript.Arguments.Count
If (dArgCount < MIN_ARG) Then
DisplaySyntax
End If

cScriptMode = MODE_INVALID
Select 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_INVALID
End Select

If (cScriptMode = MODE_INVALID Or dArgCount <> dArgExpected) Then
DisplaySyntax
End If

If (cScriptMode = MODE_ADD) Then
sGrantedUser = WScript.Arguments(ARG_INDEX_USERNAME)
If (IsValidUserName(sGrantedUser) = False) Then
DisplaySyntax
End If
End If

CreateImportExportFiles

If (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

' Verify Full Mailbox Access and Send As permissions.
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 Send As or Full Mailbox Access permissions do not exist, add these permissions.
If ( (AccessTypeForFMA = ADS_ACETYPE_ACCESS_DENIED) Or (AccessTypeForSendAs = ADS_ACETYPE_ACCESS_DENIED_OBJECT) ) Then
'If Deny access is already granted, do not add permissions for 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 Full Mailbox Access permissions.
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 Send As permissions.
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
Loop

Set rootDSE = Nothing
Set objCommand = Nothing
Set objconn = Nothing

End If

If (cScriptMode = MODE_REMOVE) Then
'Retrieve the granted user from the first line of the 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)

'The first column is the LDAP path.
sUserLDAPPath = sArraySplit(0)
'The second column is Full Mailbox Access permissions.
fAddedFMA = sArraySplit(1)
'The third column is Send As permissions.
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
Loop
End If

CloseImportexportFiles

Function IsValidUserName (sUserName)
Dim dPosition
dPosition = InStr(1, sUserName, "\")
If (dPosition = 0 ) Then
IsValidUserName = False
objfileError.WriteLine("Invalid User:" & sUserName)
Else
IsValidUserName = True
End If
End Function

Function 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 = Nothing
End Function

Function 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 = Nothing
End Function

Function 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 Function

Function 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 Function

Function 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 = Nothing
End Function

Function 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 = Nothing
End Function

Function 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 the output file name as the 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
'Determine whether the output file already exists.
If (objFSO.FileExists(sOutputFileName)) Then
Set objfileOutput = objFSO.OpenTextFile(sOutputFileName, ForReading, False, TristateTrue)
sOneRow = objfileOutput.ReadLine
'If the user name in the file differs from the parameter, the process cannot continue.
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 the log file is the user who is 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 If
End Function

Function 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 = Nothing
End Function

Function 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
Propiedades

Id. de artículo: 941018 - Última revisión: 14 ene. 2017 - Revisión: 1

Comentarios