2016-03-25 2 views
0

Я хочу, чтобы все пользователи с сервера Exchange через EWS. Я понял, что это возможно сделать с запросом FindPeople SOAP, как описано в ответе hereДобавить контакты в GlobalAddressList Exchange

Как сказано в ответе, для этого требуется AddressListId. Таким образом, мне пришлось создать GlobalAddressList на Exchange с помощью PowerShell.

Я создал GlobalAddressList следуя этим instructions

Я не знаю, как добавить пользователей в GlobalAddressList?

Событие, что нет пользователей в списке Я должен быть в состоянии получить пустой список? Поэтому я попробовал.

Вот это просьба:

<?xml version="1.0" encoding="utf-8"?> 
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
     <soap:Header> 
     <RequestServerVersion Version="Exchange2013_SP1" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" /> 
     </soap:Header> 
     <soap:Body> 
     <FindPeople xmlns="http://schemas.microsoft.com/exchange/services/2006/messages"> 
      <IndexedPageItemView MaxEntriesReturned="100" Offset="0" BasePoint="Beginning" /> 
      <ParentFolderId> 
      <AddressListId Id="someId" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" /> 
      </ParentFolderId> 
     </FindPeople> 
     </soap:Body> 
    </soap:Envelope> 

"someId" значение выше GUID из GlobalAddressList, что я создал.

Вот ответ с ошибкой, которую я получаю.

<?xml version=\"1.0\" encoding=\"utf-8\"?> 
<s:Envelope 
    xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"> 
    <s:Header> 
     <Action s:mustUnderstand=\"1\" 
      xmlns=\"http://schemas.microsoft.com/ws/2005/05/addressing/none\">* 
     </Action> 
    </s:Header> 
    <s:Body> 
     <s:Fault> 
      <faultcode 
       xmlns:a=\"http://schemas.microsoft.com/exchange/services/2006/types\">a:ErrorInternalServerError 
      </faultcode> 
      <faultstring xml:lang=\"en-US\">An internal server error occurred. The operation failed.</faultstring> 
      <detail> 
       <e:ResponseCode 
        xmlns:e=\"http://schemas.microsoft.com/exchange/services/2006/errors\">ErrorInternalServerError 
       </e:ResponseCode> 
       <e:Message 
        xmlns:e=\"http://schemas.microsoft.com/exchange/services/2006/errors\">An internal server error occurred. The operation failed. 
       </e:Message> 
      </detail> 
     </s:Fault> 
    </s:Body> 
</s:Envelope> 

Я не уверен, в чем проблема, или я на правильном пути.

Я был бы признателен за любое предложение о том, как получить пользователей с EWS. В порядке, также решения, которые предполагают модификацию на панели Office365 или в доступе PowerShell к Exchange.

Просьба сообщить об этом.

+0

Что является конечной целью здесь? Есть ли необходимость в получении пользователей через EWS/SOAP? Если вы хотите управлять пользователями на Exchange с помощью PowerShell, есть намного более простые способы сделать это с помощью командлетов EMS (gettable по import-pssession и вашего обменного концентратора fqdn) –

+0

@ChrisKuperstein Цель состоит в том, чтобы получить всех пользователей от Exchange с EWS. Если мне не нужна PowerShell еще лучше. Спасибо. – eomeroff

+1

Почему вы создали новый глобальный список адресов? вы не должны делать это нормально. Если вы входите в Outlook или OWA, какие GAL вы видите? Список адресов, который вы видите в OWA или Outlook, - это единственные списки адресов, которые вы сможете получить в EWS. –

ответ

1

Вам не следует создавать новый Gal, вам просто нужно использовать командлет Get-GlobalAddressList technet.microsoft.com/en-us/library/aa996579(v=exchg.160).aspx, чтобы получить идентификатор используемого по умолчанию GAL. Если у вас нет доступа к командлету вам необходимо убедиться, что учетная запись вашей помощи имеет Списки адресов Роль в RBAC

Глена

Смежные вопросы