Uso del script RollAlternateserviceAccountCredential.ps1 en el Shell
Se aplica a: Exchange Server 2013
Puede usar el script de RollAlternateServiceAccountPassword.ps1 en Exchange Server 2013 para actualizar una credencial de cuenta de servicio alternativa (credencial ASA) y distribuir la actualización a los servidores de acceso de cliente especificados.
Nota:
El Shell de administración de Exchange no carga scripts automáticamente. Debe preceder a todos los scripts con .\ Por ejemplo, para ejecutar el script de RollAlternateServiceAccountPassword.ps1, escriba .\RollAlternateServiceAccountPassword.ps1
.
Esta secuencia se proporciona en inglés solamente.
Para obtener más información acerca del uso y la escritura de secuencias de comandos, vea Scripting with the Exchange Management Shell.
Sintaxis
RollAlternateServiceAccountPassword.ps1 -Scope <Object> -Identity <Object> -Source <Object> -
Descripción detallada
Deberá tener permisos asignados para poder llevar a cabo estos procedimientos. Para ver qué permisos necesita, consulte el la entrada "Seguridad de acceso de cliente" en el tema sobre permisos de acceso de cliente.
Detalles técnicos de la secuencia de comandos de credenciales de cuenta de servicio alternativa
Esta secuencia de comandos facilita la instalación y el mantenimiento de la credencial ASA. Una vez creada la credencial ASA y establecidos los nombres principales de servicio adecuados, la secuencia de comandos se puede usar para distribuir la credencial a todos los servidores de acceso de cliente de destino.
Para usar el script, debe identificar a qué servidores quiere dirigirse y qué credencial quiere usar como credencial ASA.
Ámbito de servidor
Se puede optar por que la secuencia de comandos alcance a todos los servidores de acceso de cliente en el bosque, todos los miembros de una matriz del servidor de acceso de cliente en particular, o bien servidores específicos. Los parámetros disponibles son ToEntireForest, ToArraryMembers y ToSpecificServers. Si dirige el script a servidores específicos o a miembros de una matriz de servidores específica, el parámetro Identity debe especificarse con los nombres de servidores o matrices de servidores a los que quiere dirigirse.
Origen de la credencial
El script puede copiar la contraseña de la cuenta de servicio alternativa de un servidor existente. O bien, puede especificar la cuenta que desea usar y permitir que el script genere una nueva contraseña para la cuenta. Los parámetros disponibles son GenerateNewPasswordFor y CopyFrom. El parámetro GenerateNewPasswordFor requiere que especifique una cadena de cuenta en el formato siguiente: DOMAIN\Account Name. Si usa una cuenta de equipo, debe anexar "$" al final del nombre de la cuenta, por ejemplo CONTOSO\ClientServerAcct$. El parámetro CopyFrom toma el nombre de un servidor de acceso de cliente existente como origen de credenciales.
Generar una nueva contraseña para una credencial
La contraseña se crea a partir de la secuencia de comandos. No requiere la entrada del usuario. La secuencia de comandos intentará distribuir la contraseña a todos los equipos de destino y, a continuación, intentará actualizar la credencial de la cuenta Active Directory con la contraseña que se acaba de generar.
La contraseña que se acaba de generar tiene 73 caracteres y cumplirá con los requisitos estándar de contraseña segura. Si los requisitos de contraseña son diferentes, es posible que se deba establecer la contraseña de forma manual y después copiarla en los servidores de destino.
Para evitar la interrupción del servicio, la secuencia de comandos examina cada servidor de acceso de cliente y mantiene la contraseña actual además de agregar la nueva contraseña. Una vez ejecutada la secuencia de comandos, la credencial ASA compartida podrá usar cualquiera de las 2 contraseñas: la contraseña actual, tal como está guardada en Active Directory o la nueva contraseña que aún no se ha establecido en Active Directory.
Todas las contraseñas que ya no son válidas, como una contraseña expirada, se quitarán de los servidores de destino. Si no se puede cambiar la contraseña en Active Directory, posiblemente porque la contraseña expiró, el script intentará restablecer la contraseña. Esta tarea requerirá que la cuenta ejecute la secuencia de comandos para tener permisos para restablecer las contraseñas de cuenta del equipo Active Directory o las contraseñas de cuenta de usuario, en función de que su cuenta de servicio alternativa sea una cuenta de equipo o una cuenta de usuario.
Si las contraseñas no se cambian correctamente para todos los servidores de acceso de cliente de destino, si se actualiza la contraseña de Active Directory se puede producir un error de autenticación. Si la secuencia de comandos se ejecuta en modo desatendido, no actualizará la contraseña de Active Directory con la nueva contraseña, a menos que todos los servidores de acceso de cliente de destino se hayan actualizado correctamente. Si la secuencia de comandos se ejecuta en modo asistido, se le preguntará si desea actualizar la contraseña en Active Directory.
Crear una tarea programada para automatizar el mantenimiento de contraseñas
Si desea que la secuencia de comandos cree una tarea programada para mantener la contraseña de forma continua, use el parámetro CreateScheduledTask. Este parámetro exige una cadena para el nombre de la tarea que desea crear.
Nota:
Ejecute la secuencia de comandos y compruebe que funcione correctamente en modo asistido antes de crear la tarea programada desatendida.
La secuencia de comandos crea un archivo .cmd en la carpeta en la que se ubica la secuencia de comandos. A continuación, crea una tarea para ejecutar ese archivo .cmd cada tres semanas. Se puede usar el Programador de tareas de Windows para modificar la tarea programada, por ejemplo, para establecer que se ejecute con mayor o menor frecuencia. De forma predeterminada, la tarea se ejecutará como el usuario que esté conectado actualmente. Además, el script solo se ejecutará cuando el usuario haya iniciado sesión en el equipo. Recomendamos que modifique la tarea programada para ejecutarse con el usuario conectado o sin conexión. También puede optar por ejecutarla con una cuenta diferente, si es que esa cuenta tiene permisos de Active Directory para restablecer la contraseña, así como el rol de administrador de empresa de Exchange. Al crear una tarea programada, la secuencia se ejecutará automáticamente en el modo desatendido.
Tareas fuera de ámbito de la secuencia de comandos
La secuencia de comandos no administra los SPN de la credencial ASA ni permite quitar una cuenta de servicio alternativa desde un servidor. Para quitar una cuenta de servicio alternativa de un servidor, vea la sección Apagar la autenticación Kerberos en Configurar la autenticación de Kerberos para servidores de acceso de cliente con equilibrio de carga.
Solución de problemas de la secuencia
Le recomendamos que ejecute la secuencia y compruebe que funcione correctamente en modo asistido antes de crear la tarea programada desatendida. Para obtener información sobre la solución de problemas, vea Solución de problemas del script RollAlternateServiceAccountCredential.ps1.
Validación de la secuencia de comandos
Los resultados de la secuencia de comandos al ejecutarla de forma interactiva con la marca detallada deben indicar qué operaciones de la secuencia de comandos se realizaron correctamente. Para confirmar que se actualizaron los servidores de acceso de cliente, puede comprobar la marca de tiempo de la última modificación en la credencial ASA. En el siguiente ejemplo se genera una lista de servidores de acceso de cliente y la última vez que se actualizó la cuenta de servicio alternativa.
Get-ClientAccessServer -IncludeAlternateServiceAccountCredentialstatus |Fl Name, AlternateServiceAccountConfiguration
También se puede examinar el registro de eventos en el equipo en el cual se ejecuta la secuencia de comandos. Las entradas del registro de eventos para el script se encuentran en el registro de eventos de aplicación y pertenecen a la MSExchange Management Application de origen. En la tabla siguiente se indican los eventos registrados y el significado de cada uno de ellos.
Identificadores de eventos de la secuencia de comandos y sus explicaciones
Evento | Explicación |
---|---|
14001 | Comenzar |
14002 | Éxito (información) |
14003 | Con éxito pero con advertencias. La secuencia de comandos encontró algunos problemas, pero pudo resolverlos, o la entrada del usuario confirmó que no fue necesario. Si la secuencia de comandos se está ejecutando en modo interactivo, lea los resultados de la secuencia de comandos para conocer más detalles de advertencia. |
14004 | Error |
Si la secuencia de comandos se ejecuta como tarea programada, los resultados se registran en el servidor Exchange, en la carpeta Registro en una subcarpeta llamada RollAlternateServiceAccountPassword.
Puede usar el registro para confirmar que la tarea se ha ejecutado correctamente.
Parámetros
Parámetro | Obligatorio | Descripción |
---|---|---|
ToEntireForest | Opcional | El parámetro ToEntireForest tiene como destino el script a todos los servidores de acceso de cliente del bosque. |
ToArrayMembers | Opcional | El parámetro ToArrayMembers tiene como destino el script a todos los miembros de una matriz de servidor de acceso de cliente específica. Nota: Si usa el parámetro ToArrayMembers o el parámetro ToSpecificServers , debe especificar los nombres de servidor o los nombres de matriz de servidores mediante el parámetro Identity . |
ToSpecificServers | Opcional | El parámetro ToSpecificServers tiene como destino el script a servidores específicos. Nota: Si usa el parámetro ToArrayMembers o el parámetro ToSpecificServers , debe especificar los nombres de servidor o los nombres de matriz de servidores mediante el parámetro Identity . |
Identity | Obligatorio | El parámetro Identity especifica el nombre de la matriz de servidores de acceso de cliente o los nombres de los servidores específicos de destino. |
GenerateNewPasswordFor<String> | Opcional | El parámetro GenerateNewPasswordFor especifica que el script debe generar una nueva contraseña para el ASA. El valor de cadena debe ser la cuenta ASA en el formato siguiente: DOMAIN\Account Name. Si usa una cuenta de equipo, debe anexar el carácter $ al final del nombre de la cuenta. |
CopyFrom<String> | Opcional | El parámetro CopyFrom especifica que la credencial se copia de otro servidor de acceso de cliente. El valor de cadena especificado es el nombre del servidor de acceso de cliente. |
Mode | Opcional | El modificador Mode especifica si el script se ejecuta en modo desatendido o desatendido. El modo desatendido no solicita la entrada del cliente y selecciona automáticamente opciones más conservadoras cuando es necesario. |
CreateScheduledTask<String> | Opcional | El parámetro CreateScheduledTask indica al script que cree una tarea programada para realizar la actualización de credenciales asa. El valor de cadena es el nombre de la tarea programada que se va a crear. Nota: Este script crea un archivo .cmd en la carpeta donde se encuentra el script. La tarea programada ejecutará el archivo .cmd una vez cada tres semanas. La tarea se puede editar directamente en el Programador de tareas de Windows para cambiar la frecuencia de la tarea. |
WhatIf | Opcional | El modificador WhatIf indica al comando que simule las acciones que realizaría en el objeto. Mediante el modificador WhatIf , puede ver qué cambios se producirían sin tener que aplicar ninguno de esos cambios. No es necesario especificar un valor con el modificador WhatIf . |
Confirmar | Opcional | El modificador Confirm hace que el comando pause el procesamiento y requiere que acepte las acciones que realizará dicho comando antes de continuar el procesamiento. No es necesario especificar un valor con el modificador Confirm. |
Verbose | Opcional | El parámetro Verbose indica al script que realice un registro detallado, de modo que se escriba información adicional sobre las acciones del script en el archivo de registro. |
Debug | Opcional | El parámetro Debug indica al script que se ejecute en modo de depuración. Este parámetro se debe usar para determinar por qué se produce un error en la secuencia de comandos. |
Ejemplos
Ejemplo 1
En este ejemplo, la secuencia de comandos se usa para insertar la credencial en todos los servidores de acceso de cliente en el bosque en la primera configuración.
.\RollAlternateserviceAccountPassword.ps1 -ToEntireForest -GenerateNewPasswordFor "Contoso\ComputerAccount$" -Verbose
Ejemplo 2
En este ejemplo se genera una nueva contraseña para la credencial ASA de cuenta de usuario y se distribuye la contraseña a todos los miembros de las matrices de servidor de acceso de cliente donde coincide *buzón* en el nombre.
.\RollAlternateserviceAccountPassword.ps1 -ToArrayMembers _mailbox_ -GenerateNewPasswordFor "Contoso\UserAccount" -Verbose
Ejemplo 3
En este ejemplo se programa una tarea programada de implementación automatizada de contraseña una vez al mes, denominada "Exchange-RollAsa". Se actualizará la credencial ASA de todos los servidores de acceso de cliente en todo el bosque con una nueva contraseña generada por la secuencia de comandos. Se crea la tarea programada, pero no se ejecuta la secuencia de comandos. Cuando se ejecuta la tarea programada, la secuencia de comandos se ejecuta en modo desatendido.
.\RollAlternateServiceAccountPassword.ps1 -CreateScheduledTask "Exchange-RollAsa" -ToEntireForest -GenerateNewPasswordFor 'contoso\computerAccount$'
Ejemplo 4
En este ejemplo se actualiza la credencial ASA para todos los servidores de acceso de cliente en la matriz de servidores de acceso de cliente con el nombre CAS01. Se obtiene la credencial desde la cuenta ServiceAc1 del equipo Active Directory en el dominio Contoso.
.\RollAlternateserviceAccountPassword.ps1 -ToArrayMembers "CAS01" -GenerateNewPasswordFor "CONTOSO\ServiceAc1$"
Ejemplo 5
En este ejemplo, se muestra cómo se puede usar la secuencia de comandos para distribuir ASA a un equipo nuevo o un equipo que está volviendo a estar en servicio, ya sea por el aumento del tamaño de la matriz de servidores o porque está introduciendo los miembros de la matriz después del mantenimiento.
Debe actualizar la credencial ASA antes de que el servidor de acceso de cliente reciba tráfico. Copie la credencial ASA compartida desde cualquier servidor de acceso de cliente que ya esté configurado correctamente. Por ejemplo, si el servidor A tiene actualmente una credencial ASA en funcionamiento y acaba de agregar el servidor B a la matriz, puede usar el script para copiar la credencial (incluida la contraseña) del servidor A al servidor B. Esto resulta útil si el servidor B estaba inactivo o aún no era miembro de la matriz cuando la contraseña se realizó la última vez.
.\RollAlternateServiceAccountPassword.ps1 -CopyFrom ServerA -ToSpecificServers ServerB -Verbose