Usar o script RollAlternateserviceAccountCredential.ps1 no Shell
Aplica-se a: Exchange Server 2013
Você pode usar o script RollAlternateServiceAccountPassword.ps1 no Exchange Server 2013 para atualizar uma credencial de conta de serviço alternativa (credencial ASA) e distribuir a atualização para servidores de Acesso ao Cliente especificados.
Observação
O Shell de Gerenciamento do Exchange não carrega scripts automaticamente. Você precisa preceder todos os scripts com .\ Por exemplo, para executar o script RollAlternateServiceAccountPassword.ps1, digite .\RollAlternateServiceAccountPassword.ps1
.
Este script é fornecido apenas em inglês.
Para obter mais informações sobre como usar e gravar scripts, consulte Scripting com o Shell de Gerenciamento do Exchange.
Sintaxe
RollAlternateServiceAccountPassword.ps1 -Scope <Object> -Identity <Object> -Source <Object> -
Descrição detalhada
Para executar este procedimento ou estes procedimentos, você precisa receber permissões. Para ver quais permissões você precisa, consulte a entrada "Segurança de Acesso ao Cliente" no tópico Permissões de Acesso ao Cliente.
Detalhes técnicos do script de credencial de conta de serviço alternativo
Esse script facilita a instalação e a manutenção da credencial ASA. Depois de criar a credencial ASA e definir os Nomes de Princípios de Serviço apropriados, você pode usar o script para distribuir a credencial para todos os servidores de Acesso ao Cliente direcionados.
Para usar o script, você precisa identificar quais servidores deseja direcionar e qual credencial você deseja usar como sua credencial ASA.
Escopo do servidor
Você pode optar por ter o script direcionado a todos os servidores de Acesso ao Cliente na floresta, todos os membros de uma determinada matriz de servidor de Acesso ao Cliente ou servidores específicos. Os parâmetros disponíveis são ToEntireForest, ToArraryMembers e ToSpecificServers. Se você direcionar o script para servidores específicos ou para membros de uma matriz de servidor específica, o parâmetro Identity precisará ser especificado com os servidores ou nomes de matriz de servidor que você deseja direcionar.
Fonte de credencial
O script pode copiar a senha da conta de serviço alternativa de um servidor existente. Ou você pode especificar a conta que deseja usar e permitir que o script gere uma nova senha para a conta. Os parâmetros disponíveis são GenerateNewPasswordFor e CopyFrom. O parâmetro GenerateNewPasswordFor exige que você especifique uma cadeia de caracteres de conta no seguinte formato: DOMAIN\Account Name. Se você estiver usando uma conta de computador, precisará acrescentar "$" no final do nome da conta, por exemplo CONTOSO\ClientServerAcct$. O parâmetro CopyFrom usa o nome de um servidor de Acesso ao Cliente existente como a fonte de credencial.
Gerando uma nova senha para uma credencial
A senha é criada pelo script. Nenhuma entrada de usuário é necessária. O script tentará distribuir a senha para todos os computadores de destino e tentará atualizar a credencial da conta do Active Directory com a senha recém-gerada.
A senha recém-gerada tem 73 caracteres e atenderá aos requisitos padrão de senha forte. Se os requisitos de senha forem diferentes, talvez seja necessário definir a senha manualmente e copiá-la para os servidores de destino.
Para evitar a interrupção do serviço, o script examina cada servidor de Acesso ao Cliente e mantém a senha atual, além de adicionar a nova senha. Depois que o script for executado, a credencial ASA compartilhada poderá usar uma das duas senhas: a senha atual como armazenada no Active Directory ou a nova senha que ainda não foi definida no Active Directory.
Todas as senhas que não são mais válidas, como uma senha expirada, serão removidas dos servidores de destino. Se a senha no Active Directory não puder ser alterada, talvez porque a senha expirou, o script tentará redefinir uma senha. Isso exigirá que a conta que executa o script tenha permissões para redefinir senhas da conta de computador do Active Directory ou senhas da conta de usuário, dependendo se sua conta de serviço alternativa é uma conta de computador ou uma conta de usuário.
Se as senhas não forem alteradas com êxito para todos os servidores de acesso ao cliente de destino, a atualização da senha do Active Directory poderá causar uma falha de autenticação. Se o script for executado no modo autônomo, ele não atualizará a senha do Active Directory com a nova senha, a menos que todos os servidores de acesso ao cliente de destino tenham sido atualizados com êxito. Se o script for executado no modo assistido, você será questionado se deseja atualizar a senha no Active Directory.
Criando uma tarefa agendada para automatizar a manutenção de senha
Se você quiser que o script crie uma tarefa agendada para manter a senha em uma base contínua, use o parâmetro CreateScheduledTask . Esse parâmetro requer uma cadeia de caracteres para o nome da tarefa que você deseja criar.
Observação
Execute o script e verifique se ele funciona corretamente no modo assistido antes de criar a tarefa agendada autônoma.
O script cria um arquivo .cmd na pasta em que o script está localizado. Em seguida, ele cria uma tarefa para executar esse arquivo .cmd a cada três semanas. Você pode usar o Agendador de Tarefas do Windows para modificar a tarefa agendada, por exemplo, para defini-la para executar com mais ou menos frequência. Por padrão, a tarefa será executada como o usuário conectado no momento. Além disso, o script só será executado quando o usuário estiver conectado ao computador. Recomendamos que você modifique a tarefa agendada para executar se o usuário está conectado ou não. Você também pode optar por executá-la em uma conta diferente, se essa conta tiver permissões do Active Directory para redefinir senhas, bem como a função administrador do Exchange Enterprise. Ao criar uma tarefa agendada, o script será executado automaticamente no modo autônomo.
Tarefas fora do escopo do script
O script não gerenciará os SPNs da credencial ASA ou permitirá que você remova uma conta de serviço alternativa de um servidor. Para remover uma conta de serviço alternativa de um servidor, confira a seção Desativar a autenticação Kerberos em Configurar a autenticação Kerberos para servidores de Acesso ao Cliente balanceados por carga.
Solução de problemas do Script
Recomendamos que você execute o script e verifique se ele funciona corretamente no modo assistido antes de criar a tarefa agendada autônoma. Para obter informações de solução de problemas, consulte Solução de problemas do script de RollAlternateServiceAccountCredential.ps1.
Validando o script
A saída do script ao executá-lo interativamente com o sinalizador -verbose deve indicar quais operações de script foram bem-sucedidas. Para confirmar se os servidores de Acesso ao Cliente foram atualizados, você pode verificar o último carimbo de hora modificado na credencial ASA. O exemplo a seguir gera uma lista de servidores de Acesso ao Cliente e a última vez que a conta de serviço alternativa foi atualizada.
Get-ClientAccessServer -IncludeAlternateServiceAccountCredentialstatus |Fl Name, AlternateServiceAccountConfiguration
Você também pode examinar o log de eventos no computador no qual o script é executado. As entradas de log de eventos para o script estão no log de Eventos do Aplicativo e são do aplicativo de gerenciamento MSExchange de origem. A tabela a seguir lista os eventos registrados e o que os eventos significam.
IDs de evento de script e suas explicações
Evento | Explicação |
---|---|
14001 | Início |
14002 | Êxito (informações) |
14003 | Bem-sucedido, mas com avisos. O script encontrou alguns problemas, mas foi capaz de superá-los ou a entrada do usuário confirmou que eles não eram necessários. Se o script estiver em execução no modo interativo, leia a saída do script para obter mais detalhes de aviso. |
14004 | Falhou |
Se o script for executado como uma tarefa agendada, seus resultados serão registrados na pasta Log do servidor exchange em uma subpasta chamada RollAlternateServiceAccountPassword.
Você pode usar o log para confirmar se a tarefa foi executada com êxito.
Parâmetros
Parâmetro | Obrigatório | Descrição |
---|---|---|
ToEntireForest | Opcional | O parâmetro ToEntireForest destina o script a todos os servidores de Acesso ao Cliente na floresta. |
ToArrayMembers | Opcional | O parâmetro ToArrayMembers destina o script a todos os membros de uma matriz de servidor de Acesso ao Cliente específica. Observação: se você estiver usando o parâmetro ToArrayMembers ou o parâmetro ToSpecificServers , precisará especificar os nomes do servidor ou os nomes da matriz do servidor usando o parâmetro Identity . |
ToSpecificServers | Opcional | O parâmetro ToSpecificServers destina o script a servidores específicos. Observação: se você estiver usando o parâmetro ToArrayMembers ou o parâmetro ToSpecificServers , precisará especificar os nomes do servidor ou os nomes da matriz do servidor usando o parâmetro Identity . |
Identity | Obrigatório | O parâmetro Identity especifica o nome da matriz do servidor de Acesso ao Cliente ou os nomes dos servidores específicos que você está direcionando. |
GerarNewPasswordFor<String> | Opcional | O parâmetro GenerateNewPasswordFor especifica que o script deve gerar uma nova senha para o ASA. O valor da cadeia de caracteres precisa ser a conta ASA no seguinte formato: DOMAIN\Account Name. Se você estiver usando uma conta de computador, precisará acrescentar o caractere $no final do nome da conta. |
CopyFrom<String> | Opcional | O parâmetro CopyFrom especifica que a credencial é copiada de outro servidor de Acesso ao Cliente. O valor da cadeia de caracteres especificado é o nome do servidor de Acesso ao Cliente. |
Modo | Opcional | A opção Modo especifica se o script é executado no modo assistido ou autônomo. O modo autônomo não solicita a entrada do usuário e escolhe automaticamente opções mais conservadoras, quando necessário. |
Cadeia de Caracteres CreateScheduledTask<> | Opcional | O parâmetro CreateScheduledTask informa ao script para criar uma tarefa agendada para executar a atualização de credencial ASA. O valor da cadeia de caracteres é o nome da tarefa agendada que será criada. Observação: este script cria um arquivo .cmd na pasta em que o script está localizado. A tarefa agendada executará o arquivo .cmd uma vez a cada três semanas. Você pode editar a tarefa diretamente no Agendador de Tarefas do Windows para alterar a frequência da tarefa. |
Whatif | Opcional | A opção WhatIf instrui o comando a simular as ações que ele assumiria no objeto. Usando a opção WhatIf , você pode exibir quais alterações ocorreriam sem precisar aplicar nenhuma dessas alterações. Você não precisa especificar um valor com a opção WhatIf . |
Confirmar | Opcional | A opção Confirm faz com que o comando pause o processamento e requer que você confirme o que o comando fará antes de o processamento continuar. Não é necessário especificar um valor com a opção Confirm. |
Verbose | Opcional | O parâmetro Verbose informa ao script para executar logs verbosos, de modo que informações adicionais sobre as ações do script sejam gravadas no arquivo de log. |
Depurar | Opcional | O parâmetro Depuração informa que o script será executado no modo de depuração. Esse parâmetro deve ser usado para determinar por que o script falha. |
Exemplos
Exemplo 1
Este exemplo usa o script para enviar o push da credencial para todos os servidores de Acesso ao Cliente na floresta para instalação pela primeira vez.
.\RollAlternateserviceAccountPassword.ps1 -ToEntireForest -GenerateNewPasswordFor "Contoso\ComputerAccount$" -Verbose
Exemplo 2
Este exemplo gera uma nova senha para uma credencial ASA da conta de usuário e distribui a senha para todos os membros das matrizes de servidor do Client Access em que o nome corresponde a *caixa de correio*.
.\RollAlternateserviceAccountPassword.ps1 -ToArrayMembers _mailbox_ -GenerateNewPasswordFor "Contoso\UserAccount" -Verbose
Exemplo 3
Este exemplo agenda uma tarefa agendada de rolagem de senha automatizada uma vez por mês chamada "Exchange-RollAsa". Ele atualizará a credencial ASA para todos os servidores de Acesso ao Cliente em toda a floresta com uma nova senha gerada por script. A tarefa agendada é criada, mas o script não é executado. Quando a tarefa agendada é executada, o script é executado no modo autônomo.
.\RollAlternateServiceAccountPassword.ps1 -CreateScheduledTask "Exchange-RollAsa" -ToEntireForest -GenerateNewPasswordFor 'contoso\computerAccount$'
Exemplo 4
Este exemplo atualiza a credencial ASA para todos os servidores de Acesso ao Cliente na matriz de servidor do Client Access chamada CAS01. Ele obtém a credencial da conta de computador do Active Directory ServiceAc1 no domínio Contoso.
.\RollAlternateserviceAccountPassword.ps1 -ToArrayMembers "CAS01" -GenerateNewPasswordFor "CONTOSO\ServiceAc1$"
Exemplo 5
Este exemplo mostra como você pode usar o script para distribuir o ASA para um novo computador ou para um computador que está sendo colocado novamente em serviço porque você está aumentando o tamanho da matriz do servidor ou porque está reintroduzindo membros da matriz após a manutenção.
Você precisa atualizar a credencial ASA antes que o servidor de Acesso ao Cliente receba tráfego. Copie a credencial ASA compartilhada de qualquer servidor de Acesso ao Cliente que já esteja configurado corretamente. Por exemplo, se o Servidor A atualmente tiver uma credencial ASA em funcionamento e você tiver adicionado o Servidor B à matriz, poderá usar o script para copiar a credencial (incluindo a senha) do Servidor A para o Servidor B. Isso será útil se o Servidor B estiver desligado ou ainda não for um membro da matriz quando a senha foi rolada da última vez.
.\RollAlternateServiceAccountPassword.ps1 -CopyFrom ServerA -ToSpecificServers ServerB -Verbose