/ 中存储网

Exchange 2010误删地址列表导致通讯簿无法打开问题解决,分享处

2014-08-29 00:18:53 来源:中存储网

问题描述:

误删地址列表中“所有会议室”,导致访问通讯簿时候有如下报错:

Request
Url: https://127.0.0.1:443/owa/forms/premium/AddressBook.aspx?ae=Dialog&t=AddressBook&pspid=_1272280692667_727880464
User host address: 127.0.0.1
User: mail5
EX Address: /o=First Organization/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=mail5
SMTP Address: mail5@test.local
OWA version: 14.0.639.21
Mailbox server: WIN-R3HHFBZ4JSZ.test.local

Exception
Exception type: System.NullReferenceException
Exception message: 未将对象引用设置到对象的实例。

Call stack

在 Microsoft.Exchange.Data.Directory.SystemConfiguration.AddressBookBase.GetAllRoomsAddressList(ClientSecurityContext clientSecurityContext, ADSystemConfigurationSession configurationSession) 在 Microsoft.Exchange.Clients.Owa.Core.UserContext.get_AllRoomsAddressList() 在 Microsoft.Exchange.Clients.Owa.Core.Directory.DirectoryAssistance.GetAllRoomsAddressBookInfo(UserContext userContext) 在 Microsoft.Exchange.Clients.Owa.Core.UserContext.get_AllRoomsAddressBookInfo() 在 Microsoft.Exchange.Clients.Owa.Premium.Controls.SecondaryNavigationDirectoryList.CreateCondensedDirectoryList(UserContext userContext, Boolean isRoomPicker) 在 Microsoft.Exchange.Clients.Owa.Premium.DirectoryView.RenderSecondaryNavigation(TextWriter output, UserContext userContext, Boolean isRoomPicker) 在 Microsoft.Exchange.Clients.Owa.Premium.Controls.NavigationHost.RenderSecondaryNavigation(TextWriter output, Boolean showContacts) 在 ASP.forms_premium_addressbook_aspx.__Render__control1(HtmlTextWriter __w, Control parameterContainer) 在 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) 在 System.Web.UI.Page.Render(HtmlTextWriter writer) 在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

解决途径:

先看下问题出在哪,PS下运行命令Get-OrganizationConfig,运行部分结果如下:

[PS] C:Windowssystem32>Get-OrganizationConfig


RunspaceId                                           : 2ab8772c-967d-4a08-a296-30c5a6257fd1
Name                                                   : First Organization
LegacyExchangeDN                               : /o=First Organization
Heuristics                                              : None
JournalingReportNdrTo                          :
ResourceAddressLists                            : {test.local/Configuration/Deleted Objects/所有会议室
                                                                 DEL:a29e5736-92e0-4cd1-ac8a-05d662091de5}
IsMixedMode                                          : False
IsAddressListPagingEnabled                  : True

红色标示属性ResourceAddressLists链接了一个已删除的对象。。。接下来就是修改adsiedit中属性的问题了。

1.重新创建名为“所有会议室”的地址列表,UI下搞不了,命令行更方便:

[PS] C:Windowssystem32>New-AddressList -Name 所有会议室 -RecipientFilter {(Alias -ne $null -and (RecipientDisplayType
-eq 'ConferenceRoomMailbox' -or RecipientDisplayType -eq 'SyncedConferenceRoomMailbox'))}

2.adsiedit.msc

CN=FirstOrganization,CN=MicrosoftExchange,CN=Services,CN=Configuration,DC=test,DC=local,右键属性,找到msExchResourceAddressLists,将其值修改为:

CN=所有会议室,CN=All Address Lists,CN=Address Lists Container,CN=First Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=test,DC=local <步骤1中新创建的所有会议室地址列表>

3.重启下“Microsoft Exchange 通讯簿”服务。