none
Exchange 2013 не выполняется скрипт RollAlternateServiceAccountPassword.ps1 RRS feed

  • Вопрос

  • добрый день!

    Домен 2008R2 , выполняется переход с эксч2007 на эксч2013.
    эксч2013 4 сервера:
    v-dcr-cas1.domain.local
    v-mv-cas1.domain.local
    v-dcr-mbox1.domain.local
    v-dcr-mbox2.domain.local

    при выполнение скрипта, выдается ошибка, помогите разобраться

    [PS] C:\scripts>.\RollAlternateServiceAccountPassword.ps1 -ToSpecificServers v-dcr-cas1.domain.local, v-mv-cas1.domain.loc
    al -GenerateNewPasswordFor "DOMAIN\CAS-ASA$" -Verbose



    ========== Starting at 04/10/2014 13:03:44 ==========
    VERBOSE: Effective parameters that were passed to this script:
    Key                                                         Value
    ---                                                         -----
    ToSpecificServers                                           True
    GenerateNewPasswordFor                                      DOMAIN\CAS-ASA$
    Verbose                                                     True
    Identity                                                    {v-dcr-cas1.domain.local, v-mv-cas1.domain.local}
    VERBOSE: Examining the state of the local runspace ...
    VERBOSE: Preparing the destination ...
    VERBOSE: Destination server identities: v-dcr-cas1.domain.local v-mv-cas1.domain.local
    VERBOSE: Retrieving CAS server objects with credentials (passwords=False):
     v-dcr-cas1.domain.local, v-mv-cas1.domain.local
    VERBOSE: Retrieving ASA credentials from server V-DCR-CAS1
    VERBOSE: Creating a new PowerShell session for V-DCR-CAS1.domain.local.
    VERBOSE: Connecting to V-DCR-CAS1.domain.local.
    Cannot process argument transformation on parameter 'Identity'. Cannot convert value "V-DCR-CAS1" to type "Microsoft.Ex
    change.Configuration.Tasks.ClientAccessServerIdParameter". Error: "Cannot convert hashtable to an object of the followi
    ng type: Microsoft.Exchange.Configuration.Tasks.ClientAccessServerIdParameter. Hashtable-to-Object conversion is not su
    pported in restricted language mode or a Data section."
        + CategoryInfo          : InvalidData: (:) [Get-ClientAccessServer], ParameterBindin...mationException
        + FullyQualifiedErrorId : ParameterArgumentTransformationError,Get-ClientAccessServer
        + PSComputerName        : v-dcr-cas1.domain.local

    VERBOSE: Retrieving ASA credentials from server V-MV-CAS1
    VERBOSE: Creating a new PowerShell session for v-mv-cas1.domain.local.
    VERBOSE: Connecting to v-mv-cas1.domain.local.
    Cannot process argument transformation on parameter 'Identity'. Cannot convert value "V-MV-CAS1" to type "Microsoft.Exc
    hange.Configuration.Tasks.ClientAccessServerIdParameter". Error: "Cannot convert hashtable to an object of the followin
    g type: Microsoft.Exchange.Configuration.Tasks.ClientAccessServerIdParameter. Hashtable-to-Object conversion is not sup
    ported in restricted language mode or a Data section."
        + CategoryInfo          : InvalidData: (:) [Get-ClientAccessServer], ParameterBindin...mationException
        + FullyQualifiedErrorId : ParameterArgumentTransformationError,Get-ClientAccessServer
        + PSComputerName        : v-mv-cas1.domain.local

    VERBOSE: Destination servers:
    VERBOSE: Checking version requirements for the destination servers ...
    VERBOSE: Preparing the credential source ...
    VERBOSE: Looking up account CAS-ASA$ in domain DOMAIN
    RecordErrors : Couldn't figure out valid servers from the specified destination scope. Check your parameters and try ag
    ain.
    At C:\scripts\RollAlternateServiceAccountPassword.ps1:996 char:1
    + RecordErrors -ExceptionsOnly {
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
        + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,RecordErrors

    Retrieving the current Alternate Service Account configuration from servers in scope
    VERBOSE: Retrieving CAS server objects with credentials (passwords=False):

    Alternate Service Account properties:
    Per-server Alternate Service Account configuration as of the time of script completion:
    ========== Finished at 04/10/2014 13:03:53 ==========

            THE SCRIPT HAS FAILED
    [PS] C:\scripts>

    спасибо

    10 апреля 2014 г. 9:13

Ответы

  • Ранее я выполнял настройки в CU3 и скрипт работал. После вашего сообщения проверил работу скрипта в SP1 и получил такую же ошибку как у вас. Установил места возникновения ошибки и внес исправления.

    Поправьте скрипт, как я указал, и проверьте его работу.


    Сазонов Илья http://isazonov.wordpress.com/

    18 апреля 2014 г. 11:53
    Модератор
  • Баг исправлен в CU6

    Сазонов Илья http://isazonov.wordpress.com/

    15 октября 2014 г. 7:04
    Модератор

Все ответы

  • Привет,

    Ошибка у Вас:

    Cannot process argument transformation on parameter 'Identity'. Cannot convert value "V-DCR-CAS1" to type "Microsoft.Ex
    change.Configuration.Tasks.ClientAccessServerIdParameter". Error: "Cannot convert hashtable to an object of the followi
    ng type: Microsoft.Exchange.Configuration.Tasks.ClientAccessServerIdParameter. Hashtable-to-Object conversion is not su
    pported in restricted language mode or a Data section."

    Можете выложить сам скрипт?


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий. Не забывайте помечать сообщения как ответы и полезные, если они Вам помогли.

    11 апреля 2014 г. 8:37
    Модератор
  • скрип сам в 1000 строк ))
    его можно найти в паке с установленным эксч2013

    более или менее с ошибкой разобрался

    поскольку архитектура в эксч2013 была полностью переделана и теперь cas роль это обычный прокси без аутентификации на нем. А сам скрипт должен отрабатывать именно на роли cas. Так вот , если эксч2013 установить на одном сервере все роли, то скрипт отрабатывает без проблем и керберос работает....

    наверно надо ждать от микрософта исправления в скрипте или совмещать роли 2013, при чем это рекомендует микрософт в силу изменения архитектуры.

    11 апреля 2014 г. 11:07
  • ну где же вы гуру чанги ))
    11 апреля 2014 г. 13:44
  • .\RollAlternateServiceAccountPassword.ps1 -ToSpecificServers -Identity v-dcr-cas1 -GenerateNewPasswordFor DOMAIN\CAS-ASA$ -Verbose
    
    .\RollAlternateServiceAccountPassword.ps1 -CopyFrom v-dcr-cas1 -ToSpecificServers v-mv-cas1 -Verbose
    
    
    
    
    попробуйте так.

    Сазонов Илья http://isazonov.wordpress.com/

    16 апреля 2014 г. 13:49
    Модератор
  • да не, то же ошибка. нет никакой разнице указывать один или два сервера
    17 апреля 2014 г. 9:24
  • Попробуйте указывать не fqdn серверов, а netbios имена.

    Blog - Smtp25.ru

    17 апреля 2014 г. 9:26
    Отвечающий
  • да все я пробовал 
    17 апреля 2014 г. 10:17
  • .\RollAlternateServiceAccountPassword.ps1 -ToEntireForest  -GenerateNewPasswordFor DOMAIN\CAS-ASA$ -Verbose

    - попробуйте так.

    Я не помню, чтобы испытывал особые трудности в подобной ситуации.


    Сазонов Илья http://isazonov.wordpress.com/

    17 апреля 2014 г. 13:43
    Модератор
  • С какого сервера запускаете скрипт?

    Blog - Smtp25.ru

    17 апреля 2014 г. 13:45
    Отвечающий
  • и так тоже не отрабатывает, пишет туже ошибку.

    Вы когда запускали скрипт, у вас роли cas и mailbox совмещены на одном сервере ?
    если да, то без проблем отработает, а вот если не совмещены , как раз и получаю такую ошибку

    18 апреля 2014 г. 6:13
  • скрипт должен выполняться на серверах с ролью CAS. Я его запускал и на cas и на mailbox, с разными параметрами и все равно ошибка.

    Я решил в тестовой среде развернуть чистый exch2013 и в тестовой среде тоже самое, если роли разграничены по разным ВМ, то скрипт е отрабатывает, отрабатывает только в том случае, если роли cas и mailbox совмещены на одной ВМ.

    18 апреля 2014 г. 6:24
  • И это видимо не единственная проблема с этим скриптом. Я сталкивался с тем, что этот скрипт не мог скопировать учетные данные с CU2v2 на Sp1. Вы можете вручную занести учетные данные в требуемый параметр CAS сервера.

    Blog - Smtp25.ru

    18 апреля 2014 г. 6:57
    Отвечающий
  • И это видимо не единственная проблема с этим скриптом. Я сталкивался с тем, что этот скрипт не мог скопировать учетные данные с CU2v2 на Sp1. Вы можете вручную занести учетные данные в требуемый параметр CAS сервера.

    Blog - Smtp25.ru

    что значит Вы можете вручную занести учетные данные в требуемый параметр CAS сервера ?
    18 апреля 2014 г. 7:33
  • Про тестировал скрипт и обнаружил ошибку, которая вызывает сообщение: "Cannot convert hashtable to an object of ..."

    Нужно скопировать скрипт 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)


    Сазонов Илья http://isazonov.wordpress.com/


    18 апреля 2014 г. 9:01
    Модератор
  • Илья, хочу уточнить, в какой конфигурации у Вас не отработал скрипт и выдал ошибку ?
    И в какой конфигурации скрипт отработал без ошибок, после правки скрипта  ?

    18 апреля 2014 г. 10:18
  • Ранее я выполнял настройки в CU3 и скрипт работал. После вашего сообщения проверил работу скрипта в SP1 и получил такую же ошибку как у вас. Установил места возникновения ошибки и внес исправления.

    Поправьте скрипт, как я указал, и проверьте его работу.


    Сазонов Илья http://isazonov.wordpress.com/

    18 апреля 2014 г. 11:53
    Модератор
  • Баг исправлен в CU6

    Сазонов Илья http://isazonov.wordpress.com/

    15 октября 2014 г. 7:04
    Модератор