none
Не корректно работает GAL и следом списки адресов и OAB RRS feed

  • Вопрос

  • Даже не понимаю в чём проблема - с одной стороны GAL работает - ecp  и предварительный просмотр глобального списка "Глоб. список адресов по умолчанию" показывает пользователей.

    Однако в owa при просмотре списка каталога или  "все пользователи" - система говорит "Ваш запрос не может быть выполнен немедленно. Повторите попытку позже".

    В итоге адресная книга даже когда и формируется то как-то не до конца и тот же список "все пользователи" в аутлуке возвращает "операция не выполнена".

    Если я формирую список от корня например "ООО" - то этот список возвращает такую же ошибку.

    Если я формирую список "Отдел1" от ООО - то данный список в аутлуке отрабатывает. По крайне мере отрабатывал - сейчас я снёс все свои списки и оставил только те что по умолчанию. Но как я понимаю проблема именно с корневым GAL. Но что? 

    [PS] C:\Windows\system32>Get-AddressList  | Update-AddressList
    [PS] C:\Windows\system32>Get-GlobalAddressList | Update-GlobalAddressList
    [PS] C:\Windows\system32>Get-OfflineAddressBook | Update-OfflineAddressBook

    Это не помогает.


    Когда ты счастлив сам, счастьем поделись с другим!

    25 августа 2020 г. 3:30

Все ответы

  • А как посмотреть из powershell что возвращает фильтр который используется в глобальном списке?:

    ((Alias -ne $null) -and (((ObjectClass -eq 'user') -or (ObjectClass -eq 'contact') -or (ObjectClass -eq 'msExchSystemMailbox') -or (ObjectClass -eq 'msExchDynamicDistributionList') -or (ObjectClass -eq 'group') -or (ObjectClass -eq 'publicFolder'))))

    Я пробовал, но видно не верно, система говорит что не понимает (Alias -ne $null)

    Хотя вот такой вот вариант отрабатывает:

    $GAL = Get-GlobalAddressList -Identity "Глоб. список адресов по умолчанию"; Get-Recipient -ResultSize unlimited -RecipientPreviewFilter $GAL.RecipientFilter | select Name,PrimarySmtpAddress,HiddenFromAddressListsEnabled

    Но не совсем явно задаётся фильтр.

    Я просто пытаюсь понять, где происходит сбой. - С точки зрения того что превью глобального списка работает  получается что сам GAL то отрабатывает?

    У меня впечатление, что при работе глобального адресного списка происходит сбой на каком то объекте. И именно в корне подразделения. Но по факту там только группы безопасности. Вот и хотел  явным образом глянуть


    Когда ты счастлив сам, счастьем поделись с другим!


    • Изменено MaximYuAl 25 августа 2020 г. 23:48 дополнение
    25 августа 2020 г. 23:32
  • Обратил внимание на наличие ошибки в событиях системы (в Журналы Windows/Приложение) - при обновлении странички owa раздела "люди" (т.е. адресные книги) возникает ошибка 65535.

    Содержимое большое:

     <Security /> 
      </System>
    - <EventData>
      <Data><TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Error"><TraceIdentifier>https://docs.microsoft.com/dotnet/framework/wcf/diagnostics/tracing/System-ServiceModel-Diagnostics-ThrowingException</TraceIdentifier><Description>Генерирование исключения.</Description><AppDomain>/LM/W3SVC/2/ROOT/owa-2-132427096776757415</AppDomain><Exception><ExceptionType>System.Runtime.Serialization.SerializationException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType><Message>Значения DateTime, которые больше DateTime.MaxValue или меньше DateTime.MinValue, при преобразовании во время в формате UTC не могут быть сериализованы в JSON.</Message><StackTrace> в System.Runtime.Serialization.Json.JsonWriterDelegator.WriteDateTimeInDefaultFormat(DateTime value) в System.Runtime.Serialization.Json.JsonWriterDelegator.WriteDateTime(DateTime value) в WriteOwaLightningStateToJson(XmlWriterDelegator , Object , XmlObjectSerializerWriteContextComplexJson , ClassDataContract , XmlDictionaryString[] ) в System.Runtime.Serialization.Json.JsonClassDataContract.WriteJsonValueCore(XmlWriterDelegator jsonWriter, Object obj, XmlObjectSerializerWriteContextComplexJson context, RuntimeTypeHandle declaredTypeHandle) в System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson.WriteDataContractValue(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) в System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) в System.Runtime.Serialization.Json.DataContractJsonSerializer.InternalWriteObjectContent(XmlWriterDelegator writer, Object graph) в System.Runtime.Serialization.Json.DataContractJsonSerializer.InternalWriteObject(XmlWriterDelegator writer, Object graph) в System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver) в System.Runtime.Serialization.Json.DataContractJsonSerializer.WriteObject(XmlDictionaryWriter writer, Object graph) в System.Runtime.Serialization.Json.DataContractJsonSerializer.WriteObject(Stream stream, Object graph) в Microsoft.Exchange.Data.Storage.LightningConfigurationHelper.SaveConfiguration[T](Stream stream, IUserConfiguration lightningConfiguration, DataContractJsonSerializer jsonSerializer, T state) в Microsoft.Exchange.Data.Storage.LightningConfigurationHelper.&amp;lt;GetUnseenLightningItems&amp;gt;d__0`2.MoveNext() в System.Linq.Enumerable.&amp;lt;CastIterator&amp;gt;d__97`1.MoveNext() в System.Linq.Buffer`1..ctor(IEnumerable`1 source) в System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) в Microsoft.Exchange.Clients.Owa2.Server.Core.ServiceCommands.GetUnseenLightningIds.InternalExecute() в Microsoft.Exchange.Services.Wcf.ServiceCommand`1.DetectDuplicatedCallOrExecute() в Microsoft.Exchange.Services.Wcf.ServiceCommand`1.Execute() в System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) в System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) в System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) в Microsoft.Exchange.Clients.Owa2.Server.Core.OwaServiceMethodDispatcher.InvokeMethod(HttpRequest request, MethodInfo methodInfo, Object obj, Object[] parameters) в Microsoft.Exchange.Clients.Owa2.Server.Core.OwaServiceMethodDispatcher.&amp;lt;&amp;gt;c__DisplayClass22_0.&amp;lt;InternalInvokeMethod&amp;gt;b__0() в Microsoft.Exchange.Common.IL.ILUtil.DoTryFilterCatch(Action tryDelegate, Func`2 filterDelegate, Action`1 catchDelegate) в Microsoft.Exchange.Clients.Owa2.Server.Core.OwaServiceMethodDispatcher.InternalInvokeMethod(ServiceMethodInfo methodInfo, Object service, HttpRequest httpRequest, HttpResponse httpResponse, Object[] arguments) в Microsoft.Exchange.Clients.Owa2.Server.Core.OwaServiceMethodDispatcher.InvokeMethodWithPostDataInHeader(ServiceMethodInfo methodInfo, Object service, HttpRequest httpRequest, HttpResponse httpResponse) в Microsoft.Exchange.Clients.Owa2.Server.Core.OwaServiceHttpHandler.InternalProcessRequest(HttpContext httpContext) в Microsoft.Exchange.Clients.Owa2.Server.Core.OwaServiceHttpHandler.ProcessRequest(HttpContext httpContext) в System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() в System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) в System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp;amp; completedSynchronously) в System.Web.HttpApplication.PipelineStepManager.ResumeSteps(Exception error) в System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) в System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) в System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) в System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) в System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr pHandler, RequestNotificationStatus&amp;amp; notificationStatus) в System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr pHandler, RequestNotificationStatus&amp;amp; notificationStatus) в System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) в System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) </StackTrace><ExceptionString>System.Runtime.Serialization.SerializationException: Значения DateTime, которые больше DateTime.MaxValue или меньше DateTime.MinValue, при преобразовании во время в формате UTC не могут быть сериализованы в JSON. ---&amp;gt; System.ArgumentOutOfRangeException: Заданный аргумент находится вне диапазона допустимых значений. Имя параметра: value --- Конец трассировки внутреннего стека исключений ---</ExceptionString><InnerException><ExceptionType>System.ArgumentOutOfRangeException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType><Message>Заданный аргумент находится вне диапазона допустимых значений. Имя параметра: value</Message><StackTrace> в System.Runtime.Serialization.Json.JsonWriterDelegator.WriteDateTimeInDefaultFormat(DateTime value) в System.Runtime.Serialization.Json.JsonWriterDelegator.WriteDateTime(DateTime value) в WriteOwaLightningStateToJson(XmlWriterDelegator , Object , XmlObjectSerializerWriteContextComplexJson , ClassDataContract , XmlDictionaryString[] ) в System.Runtime.Serialization.Json.JsonClassDataContract.WriteJsonValueCore(XmlWriterDelegator jsonWriter, Object obj, XmlObjectSerializerWriteContextComplexJson context, RuntimeTypeHandle declaredTypeHandle) в System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson.WriteDataContractValue(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) в System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) в System.Runtime.Serialization.Json.DataContractJsonSerializer.InternalWriteObjectContent(XmlWriterDelegator writer, Object graph) в System.Runtime.Serialization.Json.DataContractJsonSerializer.InternalWriteObject(XmlWriterDelegator writer, Object graph) в System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver) в System.Runtime.Serialization.Json.DataContractJsonSerializer.WriteObject(XmlDictionaryWriter writer, Object graph) в System.Runtime.Serialization.Json.DataContractJsonSerializer.WriteObject(Stream stream, Object graph) в Microsoft.Exchange.Data.Storage.LightningConfigurationHelper.SaveConfiguration[T](Stream stream, IUserConfiguration lightningConfiguration, DataContractJsonSerializer jsonSerializer, T state) в Microsoft.Exchange.Data.Storage.LightningConfigurationHelper.&amp;lt;GetUnseenLightningItems&amp;gt;d__0`2.MoveNext() в System.Linq.Enumerable.&amp;lt;CastIterator&amp;gt;d__97`1.MoveNext() в System.Linq.Buffer`1..ctor(IEnumerable`1 source) в System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) в Microsoft.Exchange.Clients.Owa2.Server.Core.ServiceCommands.GetUnseenLightningIds.InternalExecute() в Microsoft.Exchange.Services.Wcf.ServiceCommand`1.DetectDuplicatedCallOrExecute() в Microsoft.Exchange.Services.Wcf.ServiceCommand`1.Execute() в System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) в System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) в System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) в Microsoft.Exchange.Clients.Owa2.Server.Core.OwaServiceMethodDispatcher.InvokeMethod(HttpRequest request, MethodInfo methodInfo, Object obj, Object[] parameters) в Microsoft.Exchange.Clients.Owa2.Server.Core.OwaServiceMethodDispatcher.&amp;lt;&amp;gt;c__DisplayClass22_0.&amp;lt;InternalInvokeMethod&amp;gt;b__0() в Microsoft.Exchange.Common.IL.ILUtil.DoTryFilterCatch(Action tryDelegate, Func`2 filterDelegate, Action`1 catchDelegate) в Microsoft.Exchange.Clients.Owa2.Server.Core.OwaServiceMethodDispatcher.InternalInvokeMethod(ServiceMethodInfo methodInfo, Object service, HttpRequest httpRequest, HttpResponse httpResponse, Object[] arguments) в Microsoft.Exchange.Clients.Owa2.Server.Core.OwaServiceMethodDispatcher.InvokeMethodWithPostDataInHeader(ServiceMethodInfo methodInfo, Object service, HttpRequest httpRequest, HttpResponse httpResponse) в Microsoft.Exchange.Clients.Owa2.Server.Core.OwaServiceHttpHandler.InternalProcessRequest(HttpContext httpContext) в Microsoft.Exchange.Clients.Owa2.Server.Core.OwaServiceHttpHandler.ProcessRequest(HttpContext httpContext) в System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() в System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) в System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp;amp; completedSynchronously) в System.Web.HttpApplication.PipelineStepManager.ResumeSteps(Exception error) в System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) в System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) в System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) в System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) в System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr pHandler, RequestNotificationStatus&amp;amp; notificationStatus) в System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr pHandler, RequestNotificationStatus&amp;amp; notificationStatus) в System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) в System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags) </StackTrace><ExceptionString>System.ArgumentOutOfRangeException: Заданный аргумент находится вне диапазона допустимых значений. Имя параметра: value</ExceptionString></InnerException></Exception></TraceRecord></Data> 
      </EventData>

    Это как то связано с моей проблемой?


    Когда ты счастлив сам, счастьем поделись с другим!

    26 августа 2020 г. 2:59
  • Ошибки, похоже, связаны с вашей проблемой: они возникают при попытке передать данные в приложение OWA в браузере, и связаны с неверным форматом значения какой-то даты/времени, которую сервер не может преобразовать в формат, используемый при передаче (JSON).

    Где, как и почему возникает ошибка - это могут установить и исправить только разработчики Exchange. Возможно, они уже это установили, поэтому имеет смысл поставить новейшие обновления. Если обновления не помогают, то есть смысл обратиться в техподдержку Microsoft.

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


    Слава России!

    26 августа 2020 г. 12:30
  • Тогда другой вопрос, если сделать GAL исключающий этот ящик/аккаунт то проблема же должна исчезнуть.?

    Я как то ранее сталкивался с информацией/последовательностью как создавать GAL и использовать его по дефолту и для OAB, т.е. заменять GAL, но сейчас что-то никак найти не могу. Кроме как создания самого GAL, но этого мало. Подскажите как это сделать, тогда можно будет по крайне мере обойти проблему.

    PS и всё же я не понимаю, почему превью GAL работает, а в OWA данные передать не может система.


    Когда ты счастлив сам, счастьем поделись с другим!

    26 августа 2020 г. 22:02

  • Где, как и почему возникает ошибка - это могут установить и исправить только разработчики Exchange. Возможно, они уже это установили, поэтому имеет смысл поставить новейшие обновления. Если обновления не помогают, то есть смысл обратиться в техподдержку Microsoft.

    Слава России!

    обновление куда, на контроллер домена, на Exchange?

    Тут вот ещё какое дело. Контроллер домена стоял ранее на 2008 сервере, и делался апгрейд с поднятием уровня леса. Я полез сравнивать какие есть даты в учётках и выяснил, что в старых данных параметр dSCorePropagationData  стоит не так как в новых заведённых учётках уже после обновлений (ОС 2019). 

    Может этот параметр влиять? И можно ли тогда его исправить как-то?

    PS обращение в платную техподдержку ввиду специфики компании маловероятная возможность, до минус одного процента :(



    Когда ты счастлив сам, счастьем поделись с другим!

    26 августа 2020 г. 22:40
  • Обновление - туда, где ошибка, на Exchange.

    dSCorePropagationData - это глубокие внутренности AD (содержит состояние процесса распространения унаследованных разрешений в дескрипторах безопасности объектов, подробности не документированы), Exchange туда лазить не  должен, и администратору трогать его не положено (да и не получится, скорее всего).


    Слава России!


    • Изменено M.V.V. _ 26 августа 2020 г. 23:54
    26 августа 2020 г. 23:53
  • Обновление - туда, где ошибка, на Exchange.

    dSCorePropagationData - это глубокие внутренности AD (содержит состояние процесса распространения унаследованных разрешений в дескрипторах безопасности объектов, подробности не документированы), Exchange туда лазить не  должен,



    а как обновление Exchange исправит записи каталога?

    Раз Exchange туда не лазит, значит дело не в этом. Спасибо за информацию.

    Сейчас развернул из бэкапа копию контроллера в лабораторной среде. Повторю установку exchange и посмотрю что там с каталогом и поковыряюсь с данными. Благо копию DC сделал до установки Exchange.


    Когда ты счастлив сам, счастьем поделись с другим!

    27 августа 2020 г. 2:11
  • а как обновление Exchange исправит записи каталога?

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

    Слава России!

    27 августа 2020 г. 11:04