none
Powershell, Exchange 2010, исключение в OnComplete(), Enable-Mailbox Set-CASMailbox RRS feed

  • Вопрос

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

    Есть скрипт

    Import-CSV -Path "C:\ver3\userlist.csv" -delimiter ";" | ForEach-Object -process {Enable-Mailbox -identity $_.Identity -Alias $_.Alias –Database $_.Database} 
    Import-CSV -Path "C:\ver3\userlist.csv" -delimiter ";" | ForEach-Object -process {Set-CASMailbox -Identity $_.Identity -OwaEnabled $false -ActiveSyncEnabled $false}

    Содержание csv

    Name;GivenName;Surname;Department;Title;Description;Password;DisplayName;Path;Company;sAMAccountName;Userprincipalname;Identity;Database;Alias
    ardasar ardasar;ardasar;ardasar;Inform tech;admins;admins (Москва);a3wr3zyd;ardasar ardasar (Moskva);"OU=Admins,OU=REG,DC=xxx,DC=ru";Companyname;aardasar;aardasar@xxx.ru;xxx.ru/REG/Admins/ardasar ardasar;dag1;aardasar

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

    При выполнении появляется ошибки

    ПРЕДУПРЕЖДЕНИЕ: Агент расширения командлета с индексом 5 создал исключение в OnComplete(). Исключение:
    System.InvalidOperationException: Операция является недопустимой из-за текущего состояния объекта.
       в Microsoft.Exchange.Data.Storage.ExchangePrincipal.get_ServerFullyQualifiedDomainName()
       в Microsoft.Exchange.Data.Storage.MailboxSession.Initialize(MapiStore linkedStore, LogonType logonType,
    ExchangePrincipal owner, DelegateLogonUser delegateUser, Object identity, OpenMailboxSessionFlags flags,
    GenericIdentity auxiliaryIdentity)
       в Microsoft.Exchange.Data.Storage.MailboxSession.<>c__DisplayClass12.<CreateMailboxSession>b__10(MailboxSession
    mailboxSession)
       в Microsoft.Exchange.Data.Storage.MailboxSession.InternalCreateMailboxSession(LogonType logonType, ExchangePrincipal
     owner, CultureInfo cultureInfo, String clientInfoString, IAccountingObject budget, Action`1 initializeMailboxSession,
    InitializeMailboxSessionFailure initializeMailboxSessionFailure)
       в Microsoft.Exchange.Data.Storage.MailboxSession.CreateMailboxSession(LogonType logonType, ExchangePrincipal owner,
    DelegateLogonUser delegateUser, Object identity, OpenMailboxSessionFlags flags, CultureInfo cultureInfo, String
    clientInfoString, PropertyDefinition[] mailboxProperties, IList`1 foldersToInit, GenericIdentity auxiliaryIdentity,
    IAccountingObject budget)
       в Microsoft.Exchange.Data.Storage.MailboxSession.ConfigurableOpen(ExchangePrincipal mailbox, MailboxAccessInfo
    accessInfo, CultureInfo cultureInfo, String clientInfoString, LogonType logonType, PropertyDefinition[]
    mailboxProperties, InitializationFlags initFlags, IList`1 foldersToInit, IAccountingObject budget)
       в Microsoft.Exchange.Data.Storage.MailboxSession.OpenAsSystemService(ExchangePrincipal mailboxOwner, CultureInfo
    cultureInfo, String clientInfoString)
       в Microsoft.Exchange.ProvisioningAgent.MailboxLoggerFactory.XsoMailer.Log(AdminLogMessageData data,
    LogMessageDelegate logMessage)
       в Microsoft.Exchange.ProvisioningAgent.AdminLogProvisioningHandler.OnComplete(Boolean succeeded, Exception e)
       в Microsoft.Exchange.Provisioning.ProvisioningLayer.OnComplete(Task task, Boolean succeeded, Exception exception)

    И по второй части скрипта

    ПРЕДУПРЕЖДЕНИЕ: Агент расширения командлета с индексом 1 создал исключение в OnComplete(). Исключение:
    System.InvalidOperationException: Операция является недопустимой из-за текущего состояния объекта.
       в Microsoft.Exchange.Data.Storage.ExchangePrincipal.get_ServerFullyQualifiedDomainName()
       в Microsoft.Exchange.Data.Storage.MailboxSession.Initialize(MapiStore linkedStore, LogonType logonType,
    ExchangePrincipal owner, DelegateLogonUser delegateUser, Object identity, OpenMailboxSessionFlags flags,
    GenericIdentity auxiliaryIdentity)
       в Microsoft.Exchange.Data.Storage.MailboxSession.<>c__DisplayClass12.<CreateMailboxSession>b__10(MailboxSession
    mailboxSession)
       в Microsoft.Exchange.Data.Storage.MailboxSession.InternalCreateMailboxSession(LogonType logonType, ExchangePrincipal
     owner, CultureInfo cultureInfo, String clientInfoString, IAccountingObject budget, Action`1 initializeMailboxSession,
    InitializeMailboxSessionFailure initializeMailboxSessionFailure)
       в Microsoft.Exchange.Data.Storage.MailboxSession.CreateMailboxSession(LogonType logonType, ExchangePrincipal owner,
    DelegateLogonUser delegateUser, Object identity, OpenMailboxSessionFlags flags, CultureInfo cultureInfo, String
    clientInfoString, PropertyDefinition[] mailboxProperties, IList`1 foldersToInit, GenericIdentity auxiliaryIdentity,
    IAccountingObject budget)
       в Microsoft.Exchange.Data.Storage.MailboxSession.ConfigurableOpen(ExchangePrincipal mailbox, MailboxAccessInfo
    accessInfo, CultureInfo cultureInfo, String clientInfoString, LogonType logonType, PropertyDefinition[]
    mailboxProperties, InitializationFlags initFlags, IList`1 foldersToInit, IAccountingObject budget)
       в Microsoft.Exchange.Data.Storage.MailboxSession.OpenAsSystemService(ExchangePrincipal mailboxOwner, CultureInfo
    cultureInfo, String clientInfoString)
       в Microsoft.Exchange.ProvisioningAgent.MailboxLoggerFactory.XsoMailer.Log(AdminLogMessageData data,
    LogMessageDelegate logMessage)
       в Microsoft.Exchange.ProvisioningAgent.AdminLogProvisioningHandler.OnComplete(Boolean succeeded, Exception e)
       в Microsoft.Exchange.Provisioning.ProvisioningLayer.OnComplete(Task task, Boolean succeeded, Exception exception)

    Из наблюдений. скрипт не выполняется, если между частями не вставлять паузу (добавлял около 10 секунд, тогда ошибка, которая представлена ниже не появлялась).

    Set-CASMailbox : Не удалось выполнить операцию, поскольку объект 'xxx.ru/REG/Admins/ardasar ardasar' не найден в 'server.xxx.ru'.
    C:\scripts\csv.ps1:3 знак:109
    + Import-CSV -Path "C:\scripts\test.csv" -delimiter ";" | ForEach-Object -process {Set-CASMailbox <<<<  -I
    dentity $_.Identity -OwaEnabled $false -ActiveSyncEnabled $false}
        + CategoryInfo          : NotSpecified: (0:Int32) [Set-CASMailbox], ManagementObjectNotFoundException
        + FullyQualifiedErrorId : A64C766F,Microsoft.Exchange.Management.RecipientTasks.SetCASMailbox

    Собственно последняя ошибка понятна, наличествуют тормоза, но первые две непонятны. Куда копать? Свиду все начинает работать через 5 минут (не сразу), но не уверен, что не обернется проблемами в будущем.

Все ответы

  • Как запускаете скрипт через New-PSSession или  Add-PSSnapin?

    Отвечающий
  • add-pssnapin microsoft.exchange.management.powershell.e2010
  • add-pssnapin microsoft.exchange.management.powershell.e2010

    Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
    . $env:ExchangeInstallPath\bin\RemoteExchange.ps1
    Connect-ExchangeServer -auto

    Так?

    Отвечающий
  • PS C:\Users\xxx> . $env:ExchangeInstallPath\bin\RemoteExchange.ps1
    Не удалось загрузить файл C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1, так как его выполнение
     заблокировано политиками программных ограничений. Для получения дополнительных сведений обратитесь к системному админи
    стратору.
    строка:1 знак:2
    + . <<<<  $env:ExchangeInstallPath\bin\RemoteExchange.ps1
        + CategoryInfo          : NotSpecified: (:) [], PSSecurityException
        + FullyQualifiedErrorId : RuntimeException

    Предвижу вопрос

    PS C:\Users\xxx> Get-ExecutionPolicy

    RemoteSigned

    Также пробовал

    PS C:\Users\andy> Set-ExecutionPolicy Unrestricted

    • Изменено Ardasar 29 мая 2013 г. 8:03
  • Настройте правильно политики SRP или Applocker,к ExecutionPolicyэто не относится.

    Отвечающий