Exchange Server 2013 – ошибка в скрипте RollAlternateServiceAccountPassword.ps1 из версии SP1


При настройке Kerberos в Exchange Server 2013 для установки параметров учетной записи на CAS серверах нужно использовать скрипт RollAlternateServiceAccountPassword.ps1

Поддержка Kerberos в Exchange Server 2013 добавлена в CU1 и скрипт RollAlternateServiceAccountPassword.ps1 прекрасно работал в CU2 и в CU3, но в SP1 он стал выдавать ошибку:

Cannot process argument transformation on parameter ‘Identity’. Cannot convert value «CAS» to type «Microsoft.Exchange.Configuration.Tasks.ClientAccessServerIdParameter». Error: «Cannot convert hashtable to an object of the following type: Microsoft.Exchange.Configuration.Tasks.ClientAccessServerIdParameter. Hashtable-to-Object conversion is not supported in restricted language mode or a Data section.»

    + CategoryInfo          : InvalidData: (:) [Set-ClientAccessServer], ParameterBindin…mationException

    + FullyQualifiedErrorId : ParameterArgumentTransformationError,Set-ClientAccessServer

    + PSComputerName        : cas.domain.ru

Сообщения на форумах об этой ошибке:

http://social.technet.microsoft.com/Forums/ru-RU/285e2079-42c8-4a3a-985a-7a2d1a03c126/exchange-2013-rollalternateserviceaccountpasswordps1?forum=exchange2013ru

http://social.technet.microsoft.com/Forums/exchange/en-US/08717e2f-c333-47a8-8cd2-290263e01221/exchange-2013-sp1-windows-server-2012-r2-alternate-service-account-is-not-working?forum=exchangesvrdeploy

http://social.technet.microsoft.com/Forums/exchange/en-US/ba139f2f-723f-46b8-88d6-8a7176d4c3a3/exchange-2013-kerberos-unable-to-run-rollalternateserviceaccountpasswordps1?forum=exchangesvrgeneral

После прогона скрипта в отладчике удалось установить два места, где возникает ошибка, и где необходимо внести маленькую поправку.

Нужно скопировать скрипт RollAlternateServiceAccountPassword.ps1 в отдельную папку и исправить в нем:

1. Строка 349:

          Invoke-Command `

              -Session $session `

              -Arg @($_.Identity, $retrievePasswords, $InnerVerbose) `

              -ScriptBlock $getCas `

              -ErrorAction $errorAction

на

          Invoke-Command `

              -Session $session `

              -Arg @($_.Identity.Name, $retrievePasswords, $InnerVerbose) `

              -ScriptBlock $getCas `

              -ErrorAction $errorAction

2. Строка 866

        Invoke-Command `

          -Session $session `

          -Arg ($server.Identity, $credentialsToSetToCas, $removeAllExistingCredentials, $WhatIfPreference, $InnerVerbose) `

          -ScriptBlock {

            param($serverId, $creds, $shouldRemoveAll, $whatIf, $verbose)

            Set-ClientAccessServer $serverId `

              -RemoveAlternateServiceAccountCredentials:$shouldRemoveAll `

              -CleanUpInvalidAlternateServiceAccountCredentials:(-not $shouldRemoveAll) `

              -AlternateServiceAccountCredential $creds `

              -Verbose:$verbose `

              -WhatIf:$whatIf }

на

        Invoke-Command `

          -Session $session `

          -Arg ($server.Identity.Name, $credentialsToSetToCas, $removeAllExistingCredentials, $WhatIfPreference, $InnerVerbose) `

          -ScriptBlock {

            param($serverId, $creds, $shouldRemoveAll, $whatIf, $verbose)

            Set-ClientAccessServer $serverId `

              -RemoveAlternateServiceAccountCredentials:$shouldRemoveAll `

              -CleanUpInvalidAlternateServiceAccountCredentials:(-not $shouldRemoveAll) `

              -AlternateServiceAccountCredential $creds `

              -Verbose:$verbose `

              -WhatIf:$whatIf }

 

(Всего лишь замена Identity на Identity.Name)

После этих правок скрипт работает правильно.

Более глубоко в причинах ошибки (в скрипт этой версии вкрался баг или изменился вывод какого-то командлета) я не разбирался.

Реклама

Один ответ

  1. […] Описание проблемы Exchange Server 2013 – ошибка в скрипте RollAlternateServiceAccountPassword.ps1 из… […]

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: