Использование сценария RollAlternateserviceAccountCredential.ps1 в консолиUsing the RollAlternateserviceAccountCredential.ps1 Script in the Shell

Применимо к: Exchange Server 2013Applies to: Exchange Server 2013

Вы можете использовать сценарий RollAlternateServiceAccountPassword.ps1 в Exchange Server 2013, чтобы обновить учетные данные альтернативной учетной записи службы (ASA) и распределить обновление между указанными серверами клиентского доступа.You can use the RollAlternateServiceAccountPassword.ps1 script in Exchange Server 2013 fto update an alternate service account credential (ASA credential) and distribute the update to specified Client Access servers.

Примечание

Командная консоль Exchange не загружать автоматически скрипты. Должны предшествовать все сценарии с ". & #92;" Например, чтобы запустить сценарий RollAlternateServiceAccountPassword.ps1, введите .\RollAlternateServiceAccountPassword.ps1.The Exchange Management Shell doesn't load scripts automatically. You need to precede all scripts with ".\" For example, to run the RollAlternateServiceAccountPassword.ps1 script, type .\RollAlternateServiceAccountPassword.ps1.

Примечание

Это сценарий имеется только на английском языке.This script is provided in English only.

Дополнительные сведения об использовании и записи сценариев см. в разделе Scripting with the Exchange Management Shell.For more information about how to use and write scripts, see Scripting with the Exchange Management Shell.

СинтаксисSyntax

    RollAlternateServiceAccountPassword.ps1 -Scope <Object> -Identity <Object> -Source <Object> -

Подробное описаниеDetailed Description

Для выполнения этих процедур необходимы соответствующие разрешения. Сведения о необходимых разрешениях см. в статье Запись «Безопасность клиентского доступа» в разделе «Разрешения клиентского доступа».You need to be assigned permissions before you can perform this procedure or procedures. To see what permissions you need, see the "Client Access Security" entry in the Client Access Permissions topic.

Технические сведения о сценарии для учетных данных альтернативной учетной записи службыTechnical Details of the Alternate Service Account Credential Script

Этот сценарий упрощает установку и обслуживание учетных данных ASA. После создания учетных данных ASA и установки соответствующих имен участников служб можно использовать этот сценарий для распространения учетных данных на все целевые серверы клиентского доступа.This script facilitates setup and maintenance of the ASA credential. After you've created the ASA credential and set the appropriate Service Principle Names, you can use the script to distribute the credential to all targeted Client Access servers.

Чтобы использовать этот сценарий, необходимо определить целевые серверы и учетные данные альтернативной учетной записи службы.To use the script, you need to identify which servers you want to target and which credential you want to use as your ASA credential.

Область сервераServer Scope

Для сценария в качестве целевого объекта можно выбрать все серверы клиентского доступа в лесу, все члены определенного массива серверов клиентского доступа или определенные серверы. Доступны параметры ToEntireForest, ToArraryMembers и ToSpecificServers. Если в качестве целевого объекта для сценария выбраны определенные серверы или члены определенного массива серверов, то в параметре Identity необходимо указать имена целевых серверов или массива серверов.You can choose to have the script target all the Client Access servers in the forest, all members of a particular Client Access server array, or specific servers. The available parameters are ToEntireForest, ToArraryMembers, and ToSpecificServers. If you target the script to specific servers or to members of a specific server array, the Identity parameter need to be specified with the servers or server array names you want to target.

Источник учетных данныхCredential Source

Скрипт можно скопировать пароль учетной записи альтернативного службы из существующего сервера. Или можно указать учетную запись, необходимо использовать и позволить скрипт создать новый пароль для учетной записи. Доступные параметры являются GenerateNewPasswordFor и CopyFrom. Параметр GenerateNewPasswordFor необходимо указать строку учетной записи в следующем формате: домена\имя учетной записи. Если вы используете учетную запись компьютера, необходимо добавить «$» в конце имени учетной записи, например CONTOSO\ClientServerAcct$. Параметр CopyFrom принимает имя существующего сервера клиентского доступа в качестве источника учетных данных.The script can copy the alternate service account password from an existing server. Or, you can specify the account you want to use and let the script generate a new password for the account. The available parameters are GenerateNewPasswordFor and CopyFrom. The GenerateNewPasswordFor parameter requires that you specify an account string in the following format: DOMAIN\Account Name. If you're using a computer account, you need to append "$" at the end of the account name, for example CONTOSO\ClientServerAcct$. The CopyFrom parameter takes the name of an existing Client Access server as the credential source.

Создание нового пароля для учетных данныхGenerating a New Password for a Credential

Пароль создается с помощью сценария. Никаких действий пользователя не требуется. Сценарий распространит пароль на все целевые компьютеры, а затем обновит учетные данные учетной записи Active Directory с помощью нового пароля.The password is created by the script. No user input is required. The script will try to distribute the password to all target computers, and will then try to update the Active Directory account credential with the newly-generated password.

Этот новый пароль длиной 73 символа соответствует стандартным требованиям к надежному паролю. Если действуют пользовательские требования к паролю, необходимо установить пароль вручную, а затем скопировать его на целевые серверы.The newly-generated password is 73 characters long and will satisfy standard strong password requirements. If your password requirements differ, you may need to set the password manually and then copy it to the target servers.

Для предотвращения прерывания работы служб сценарий проверяет каждый сервер клиентского доступа и поддерживает использование текущего пароля во время добавления нового пароля. После запуска сценария общие учетные данные ASA поддерживают использование одного из 2 паролей: текущего пароля, сохраненного в службе каталогов Active Directory, или нового пароля, еще не установленного в службе Active Directory.To prevent service interruption, the script examines each Client Access server and maintains the current password in addition to adding the new password. After the script has run, the shared ASA credential will be able to use either of 2 passwords: the current password as stored in Active Directory or the new password that hasn't yet been set in Active Directory.

Все недопустимые пароли, например устаревшие, будут удалены с серверов назначения. Если пароль в службе каталогов Active Directory невозможно изменить, например из-за истечения срока действия пароля, сценарий выполнит смену пароля. Для этого необходимо, чтобы учетная запись, с помощью которой запущен сценарий, имела разрешения на сброс паролей учетных записей компьютеров или пользователей Active Directory (в зависимости от того, является ли альтернативная учетная запись службы учетной записью компьютера или пользователя).All passwords that are no longer valid, such as an expired password, will be removed from the destination servers. If the password in Active Directory can't be changed, perhaps because the password has expired, the script will attempt a password reset. This will require the account running the script to have permissions to reset either Active Directory computer account passwords or user account passwords, depending on whether your alternate service account is a computer account or a user account.

Если не удалось успешно изменить пароли для всех целевых серверов клиентского доступа, обновление пароля Active Directory может привести к ошибке при проверке подлинности. Если сценарий запущен в автоматическом режиме, он не сможет обновить пароль Active Directory с помощью нового пароля до тех пор, пока все целевые серверы клиентского доступа не будут успешно обновлены. При запуске сценария в режиме с сопровождением отобразится запрос о необходимости обновления пароля в службе каталогов Active Directory.If the passwords aren't changed successfully for all target Client Access servers, updating the Active Directory password can cause an authentication failure. If the script is run in unattended mode, it won't update the Active Directory password with the new password unless all target Client Access servers have been updated successfully. If the script is run in attended mode, you will be asked whether you want to update the password in Active Directory.

Создание запланированной задачи по автоматическому обслуживанию пароляCreating a Scheduled Task to Automate Password Maintenance

Чтобы сценарий создал запланированную задачу по обслуживанию пароля на постоянной основе, используйте параметр CreateScheduledTask. В этом параметре необходимо указать строку с именем создаваемой задачи.If you want the script to create a scheduled task to maintain the password on an ongoing basis, use the CreateScheduledTask parameter. This parameter requires a string for the name of the task you want to create.

Примечание

Запустите сценарий и перед созданием автоматической запланированной задачи убедитесь, что он правильно работает в режиме с сопровождением.Run the script and verify that it works correctly in attended mode before you create the unattended scheduled task.

Сценарий создает файл CMD в папке, в которой расположен сценарий. Затем он создает задачу по запуску этого файла CMD через каждые три недели. Можно использовать планировщик заданий Windows, чтобы изменить запланированную задачу, например увеличить или уменьшить для нее периодичность запуска. По умолчанию задача будет выполняться с помощью учетной записи пользователя, вошедшего в систему в данный момент. Также сценарий будет выполняться только при входе этого пользователя в систему. Рекомендуется назначить выполнение запланированной задачи независимо от входа пользователя в систему. Также можно определить для нее выполнение с помощью другой учетной записи, имеющей разрешения Active Directory на сброс пароля и роль администратора предприятия Exchange. При создании запланированной задачи сценарий автоматически запускается в автоматическом режиме.The script creates a .cmd file in the folder where the script is located. It then creates a task to run that .cmd file every three weeks. You can use Windows Task Scheduler to modify the scheduled task, for example, to set it to run more or less often. By default, the task will run as the currently logged-on user. In addition, the script will only run when the user is logged on to the computer. We recommend that you modify the scheduled task to run whether the user is logged on or not. You can also choose to run it under a different account, if that account has Active Directory permissions to reset passwords as well as the Exchange Enterprise Administrator role. When creating a scheduled task, the script will automatically run in unattended mode.

Задачи вне области сценарияTasks Out of Scope of the Script

Сценарий не будет управлять именами участников служб учетных данных ASA и не позволит удалить альтернативную учетную запись службы с сервера. Сведения о том, как удалить альтернативную учетную запись службы с сервера, см. в разделе Отключение проверки подлинности Kerberos статьи Настройка проверки подлинности Kerberos для серверов клиентского доступа с балансировкой нагрузки.The script won't manage the SPNs of the ASA credential or allow you to remove an alternate service account from a server. To remove an alternate service account from a server, see the Turn Kerberos authentication off section in Configuring Kerberos authentication for load-balanced Client Access servers.

Устранение неполадок в сценарииTroubleshooting the Script

Рекомендуется запустить сценарий и перед созданием автоматической запланированной задачи убедиться, что он правильно работает в режиме с сопровождением. Сведения по устранению неполадок см. в разделе Устранение неполадок сценария RollAlternateServiceAccountCredential.ps1.We recommend that you run the script and verify that it works correctly in attended mode before you create the unattended scheduled task. For troubleshooting information, see Troubleshooting the RollAlternateServiceAccountCredential.ps1 Script.

Проверка сценарияValidating the Script

Выходные данные сценария при его запуске в интерактивном режиме с флагом -verbose должны указывать на успешное выполнение операций сценария. Чтобы убедиться в успешном обновлении серверов клиентского доступа, можно проверить отметку времени последнего изменения учетных данных ASA. В следующем примере создается список серверов клиентского доступа и отметка времени последнего обновления альтернативной учетной записи службы.The output of the script when you run it interactively with the -verbose flag should indicate what script operations were successful. To confirm that the Client Access servers were updated, you can verify the last modified time stamp on the ASA credential. The following example generates a list of Client Access servers and the last time the alternate service account was updated.

    Get-ClientAccessServer -IncludeAlternateServiceAccountCredentialstatus |Fl Name, AlternateServiceAccountConfiguration

Также можно проверить журнал событий на компьютере, на котором выполняется скрипт. Записи журнала событий для скрипта в журнале событий приложений и из исходного Приложения управления MSExchange. В следующей таблице перечислены события, которые записываются и смысле события.You can also examine the event log on the computer on which the script is run. The event log entries for the script are in the Application Event log and are from the source MSExchange Management Application. The following table lists the events that are logged and what the events mean.

Коды событий сценария и их поясненияScript Event IDs and their explanations

СобытиеEvent ПояснениеExplanation

1400114001

НачалоStart

1400214002

Успешно (сведения)Success (information)

1400314003

Успешно, но с предупреждениями.Successful but with Warnings.

Во время выполнения сценария произошли некоторые ошибки, но сценарию удалось обойти их или пользователь ввел подтверждение о том, что они незначительны. При запуске сценария в интерактивном режиме дополнительные сведения о предупреждениях см. в выходных данных сценария.The script encountered some issues but was able to overcome them, or user input confirmed they weren't necessary. If the script is running in interactive mode, read the script output for further warning details.

1400414004

СбойFailed

Если сценарий запущен как запланированная задача, его результаты заносятся в журнал, расположенный в папке Logging сервера Exchange во вложенной папке RollAlternateServiceAccountPassword.If the script runs as a scheduled task, its results are logged to the Exchange server Logging folder in a subfolder called RollAlternateServiceAccountPassword.

Этот журнал можно использовать для проверки успешности выполнения задачи.You can use the log to confirm that the task has been running successfully.

ПараметрыParameters

ПараметрParameter ОбязательныйRequired ОписаниеDescription

ToEntireForestToEntireForest

НеобязательныйOptional

Параметр ToEntireForest указывает сценарий для всех серверов клиентского доступа в лесу.The ToEntireForest parameter targets the script to all Client Access servers in the forest.

ToArrayMembersToArrayMembers

НеобязательныйOptional

Параметр ToArrayMembers указывает скрипт, чтобы все участники определенных массива серверов клиентского доступа.The ToArrayMembers parameter targets the script to all members of a specific Client Access server array.

Примечание

При использовании параметра ToArrayMembers или ToSpecificServers необходимо указать имена серверов или массива серверов с помощью параметра Identity.If you're using the ToArrayMembers parameter or the ToSpecificServers parameter, you need to specify the server names or the server array names using the Identity parameter.

ToSpecificServersToSpecificServers

НеобязательныйOptional

Параметр ToSpecificServers указывает сценарий для конкретных серверов.The ToSpecificServers parameter targets the script to specific servers.

Примечание

При использовании параметра ToArrayMembers или ToSpecificServers необходимо указать имена серверов или массива серверов с помощью параметра Identity.If you're using the ToArrayMembers parameter or the ToSpecificServers parameter, you need to specify the server names or the server array names using the Identity parameter.

IdentityIdentity

ОбязательныйRequired

Параметр Identity указывает имя массива серверов клиентского доступа или имена конкретных серверов, которые конечной.The Identity parameter specifies name of the Client Access server array or the names of the specific servers that you're targeting.

GenerateNewPasswordFor<строки>GenerateNewPasswordFor<String>

НеобязательныйOptional

Параметр GenerateNewPasswordFor указывает, что по сценарию необходимо создать новый пароль для учетных данных ASA. В качестве значения строки необходимо указать учетную запись ASA в следующем формате: ДОМЕН\Имя_учетной_записи. При использовании учетной записи компьютера необходимо добавить символ «$» в конец имени учетной записи.The GenerateNewPasswordFor parameter specifies that the script should generate a new password for the ASA. The string value need to be the ASA account in the following format: DOMAIN\Account Name. If you're using a computer account, you need to append the $ character at the end of the account name.

CopyFrom<строки>CopyFrom<String>

НеобязательныйOptional

Параметр CopyFrom указывает, что учетные данные копируются из другого сервера клиентского доступа. Строковое значение, указанное — это имя сервера клиентского доступа.The CopyFrom parameter specifies that the credential is copied from another Client Access server. The string value specified is the name of the Client Access server.

ModeMode

НеобязательныйOptional

Параметр режима указывает, выполняется ли скрипт в ручном или автоматическом режиме. В автоматическом режиме не предлагает для ввода данных пользователем и автоматически выбирает более высокого уровня безопасности параметры, при необходимости.The Mode switch specifies whether the script runs in attended or unattended mode. Unattended mode doesn't prompt for user input and automatically chooses more conservative options, when necessary.

CreateScheduledTask<строки>CreateScheduledTask<String>

НеобязательныйOptional

Параметр CreateScheduledTask указывает сценарий для создания запланированного задания, чтобы выполнить обновление ASA учетных данных. Строковое значение — это имя запланированного задания, которое будет создана.The CreateScheduledTask parameter tells the script to create a scheduled task to perform the ASA credential update. The string value is the name of the scheduled task that will be created.

Примечание

Этот сценарий создает CMD-файл в папку, где скрипт. Запланированное задание будет выполняться этот файл один раз каждые три недели. Вы можете изменить задачи непосредственно в планировщиком заданий Windows для изменения частоты задачи.This script creates a .cmd file in the folder where the script is located. The scheduled task will run the .cmd file once every three weeks. You can edit the task directly in Windows Task Scheduler to change the frequency of the task.

WhatIfWhatIf

НеобязательныйOptional

Переключатель WhatIf указывает, что команда для моделирования действия, которые потребуется на объекте. С помощью переключателя whatIf , можно просмотреть, какие изменения может происходить без того, чтобы установить любой из этих изменений. Не нужно указывать значение для переключателя whatIf .The WhatIf switch instructs the command to simulate the actions that it would take on the object. By using the WhatIf switch, you can view what changes would occur without having to apply any of those changes. You don't have to specify a value with the WhatIf switch.

ConfirmConfirm

НеобязательныйOptional

Параметр Confirm команда приостановка обработки и необходимо подтвердить, что команда будет делать перед продолжением обработки. Указывать значение для параметр Confirm не нужно.The Confirm switch causes the command to pause processing and requires you to acknowledge what the command will do before processing continues. You don't have to specify a value with the Confirm switch.

VerboseVerbose

НеобязательныйOptional

Параметр Verbose указывает скрипта для выполнения подробное ведение журнала, таким образом, Дополнительные сведения о действиях скрипт, записывается в файл журнала.The Verbose parameter tells the script to perform verbose logging, so that additional information about the script's actions is written to the log file.

DebugDebug

НеобязательныйOptional

Параметр Debug указывает, что сценарий необходимо запускать в режиме отладки. Этот параметр необходимо использовать для определения причины сбоя сценария.The Debug parameter tells the script to run in debugging mode. This parameter should be used to determine why the script fails.

ПримерыExamples

Пример 1Example 1

В этом примере используется сценарий по отправке учетных данных на все серверы клиентского доступа в лесу для первой установки.This example uses the script to push the credential to all Client Access servers in the forest for first-time setup.

    .\RollAlternateserviceAccountPassword.ps1 -ToEntireForest -GenerateNewPasswordFor "Contoso\ComputerAccount$" -Verbose

Пример 2Example 2

В этом примере показано, как создать новый пароль для учетных данных ASA учетной записи пользователя и распространить его на все члены массивов серверов клиентского доступа, имя которых соответствует *mailbox*.This example generates a new password for a user account ASA credential and distributes the password to all members of Client Access server arrays where the name matches *mailbox*.

    .\RollAlternateserviceAccountPassword.ps1 -ToArrayMembers *mailbox* -GenerateNewPasswordFor "Contoso\UserAccount" -Verbose

Пример 3Example 3

В этом примере показано, как создать расписание запланированной задачи по автоматическому переключению паролей, выполняемому один раз в месяц, с именем «Exchange-RollAsa». Эта задача будет обновлять учетные данные ASA для всех серверов клиентского доступа во всем лесу с помощью нового пароля, созданного сценарием. Запланированная задача создана, но сценарий не запущен. При выполнении запланированной задачи сценарий запускается в автоматическом режиме.This example schedules a once-a-month automated password roll scheduled task called “Exchange-RollAsa”. It will update the ASA credential for all Client Access servers in the entire forest with a new, script-generated password. The scheduled task is created, but the script is not run. When the scheduled task is run, the script runs in unattended mode.

    .\RollAlternateServiceAccountPassword.ps1 -CreateScheduledTask "Exchange-RollAsa" -ToEntireForest -GenerateNewPasswordFor 'contoso\computerAccount$'

Пример 4Example 4

В этом примере показано, как обновить учетные данные ASA для всех серверов клиентского доступа в массиве таких серверов с именем CAS01. Они получают учетные данные из учетной записи компьютера Active Directory с именем ServiceAc1 в домене Contoso.This example updates the ASA credential for all Client Access servers in the Client Access server array named CAS01. It obtains the credential from the Active Directory computer account ServiceAc1 in the domain Contoso.

    .\RollAlternateserviceAccountPassword.ps1 -ToArrayMembers "CAS01" -GenerateNewPasswordFor "CONTOSO\ServiceAc1$" 

Пример 5Example 5

В этом примере показано, как с помощью сценария распространить учетные данные ASA на новый компьютер или на существующий компьютер, вводимый в эксплуатацию в связи с увеличением размера массива серверов или с повторным добавлением членов массива после обслуживания.This example shows how you can use the script to distribute the ASA to a new computer or to a computer that's being put back into service either because you're increasing the size of your server array or because you're re-introducing array members after maintenance.

Прежде чем сервер клиентского доступа получит трафик, необходимо обновить учетные данные ASA. Скопируйте общие учетные данные ASA с любого правильно настроенного сервера клиентского доступа. Например, если сервер ServerA имеет используемые в текущий момент учетные данные ASA и пользователь добавил сервер ServerB в массив, можно использовать этот сценарий для копирования учетных данных (включая пароль) с сервера ServerA на сервер ServerB. Это полезно, если сервер ServerB был отключен или не являлся членом массива в тот момент, когда было выполнено последнее переключение пароля.You need to update the ASA credential before the Client Access server receives traffic. Copy the shared ASA credential from any Client Access server that's already configured correctly. For example, if Server A currently has a working ASA credential and you’ve just added Server B to the array, you can use the script to copy the credential (including the password) from Server A to Server B. This is useful if Server B was down or not yet a member of the array when the password was rolled the last time.

.\RollAlternateServiceAccountPassword.ps1 -CopyFrom ServerA -ToSpecificServers ServerB -Verbose