トップ回答者
「すべての会議室」アドレスリストを削除するとOWAでアドレス帳エラーとなる。

質問
-
いつも、本フォーラムでは勉強させてもらっています。ありがとうございます。
現在、以下の環境で検証を行っています。
・WindowsServer2008 Std - Exchange2007 SP2 Ent
・WindowsServer2003R2 Ent - Exchange2010 SP1 Ent
いわゆる、Ex2007からEx2010への移行に向けた検証です。
状態としては、Ex2007組織にEx2010をインストールし、各サーバのユーザー間
でメール送受信ができるところまで進めています。
*****事象*****
・アドレス一覧から「すべての会議室」を削除すると、2010のOWA接続で、アドレス帳が利用できなく
なります。
・上記アドレス帳のOriginatingServerで削除処理を行いました。
・2010のOWAで表示されるエラーは以下の通りです(アドレス帳が出るべきウィンドウに表示されます)。
Request
Url: https://ex2010:443/owa/forms/premium/AddressBook.aspx?ae=Dialog&t=AddressBook&a=PickRecipients
User host address: *.*.*.* (伏字)
User: テスト 6
EX Address: /o=TestOrg/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=user50342c66
SMTP Address: t0011@mx.exchange.local
OWA version: 14.1.218.13
Mailbox server: ex2010.exchange.localException
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)
・ADSIエディタで、各ユーザーのOWAで利用するアドレス帳をGAL等に直接指定すると問題が解消され
るようですが、これだと根本解決にならないと思います。
・他のビルトインアドレスリスト(すべてのグループ等)の削除では、本エラーはでません。
どなたか、本エラーの対処方法、原因等がわかりましたら教えてください。
よろしくお願いします。
2010年9月17日 9:14
回答
-
駆け出し管理者さん、追加の情報ありがとうございます。
Exchange Server 2010 SP1 の環境で「すべての会議室」アドレスリストを削除したところ、
駆け出し管理者さんの事象と同様にOWAでアドレス帳を表示できずにエラーとなりました。調べてみたところ、「すべての会議室」は組織の構成のmsExchResourceAddressLists 属性に設定されており、削除した「すべての会議室」を復元すればエラーを解消できるという情報を見つけました。
(削除してはいけなかったのですね。。。)---------
(参考情報)
・IT-Professional.AT
http://it-professional.at/?p=5
New-AddressList コマンドレットで「すべての会議室」アドレスリストを作成して、その属性の値を
ADSIEdit で組織の構成のmsExchResourceAddressLists 属性に設定します。
---------
こちらの情報が参考になりましたら幸いです。
マイクロソフト株式会社 フォーラム オペレーター 星 睦美- 回答としてマーク 駆け出し管理者 2010年9月22日 5:47
2010年9月22日 5:14
すべての返信
-
駆け出し管理者 さん、こんにちは。
フォーラム オペレーターの星 睦美です。Exchange 2007 と Exchange 2010 が共存する環境では、Exchange 2010 はExchange 2007 にメールボックスをもつユーザーにはExchange 2007 を参照させます。Exchange 2007 側のアドレスリストの削除を行ったのでExchange 2007 にメールボックスをもつユーザーから参照できなくなってしまったのではないかと思います。
Exchange 2007 と Exchange 2010 の共存に関してのTechNet ライブラリのページを紹介します。
・Exchange 2007 - Planning Roadmap for Upgrade and Coexistence:
こちらの情報が参考になりましたら幸いです。
マイクロソフト株式会社 フォーラム オペレーター 星 睦美2010年9月21日 2:28 -
星様
駆け出し管理者です。ご返答ありがとうございます。
また、情報のご提供、ありがとうございます。
ご指摘のURLを確認させていただいたのですが、私が必要としている情報がなかったように
見受けられました。
また、こちらの情報が不足していましたので、追記させていただきます。
(星様からご指摘のあった、「登録サーバの違いによるエラー」ではなさそうです。)
情報不足の質問を出してしまい、申し訳ありません。
**********2010/09/21追記****************
【登録ユーザー情報】
・Ex2007にメールボックスのあるユーザー:テスト 1
・Ex2010にメールボックスのあるユーザー:テスト 6
【アドレスリストとエラーの状況について】
1.Ex2007単体時に、ビルドインのアドレスリスト(すべての会議室含む)は削除しています。
2.この時点では、テスト1のOWAでエラーはでません(Ex2007にアクセス)。
3.Ex2010を組織にインストールしたところ、ビルドインアドレスリスト(すべての会議室含む)が
再度作成されます。
また、管理コンソールや管理コマンドで確認したところ、アドレスリストはサーバ個々に個別の
ものがあるのではなく、Exchange組織に共通のものだと思われます。
(ただし、Get-AddressList | format-list で取得したOriginatingServerはEx2007のサーバ。)
4.上記の状態(削除しない状態)で、以下のテストを実施。
・テスト1でEx2007にOWA接続:宛先選択時のエラーはなし。
・テスト6でEx2010にOWA接続:宛先選択時のエラーはなし。
5.ビルドインアドレスリストは利用しないので、一つずつ削除。削除操作はOriginatingServerの
Ex2007の管理コンソールから実施。
1)すべての会議室を除いたアドレスリストの削除(1アドレスリストずつ削除してテストを実施)
・テスト1でEx2007にOWA接続:宛先選択時のエラーはなし。
・テスト6でEx2010にOWA接続:宛先選択時のエラーはなし。
2)すべての会議室を削除
・テスト1でEx2007にOWA接続:宛先選択時のエラーはなし。
・テスト6でEx2010にOWA接続:宛先選択時にエラー発生。
6.Ex2010SP1が提供されていたので、Ex2010にSP1を適用。
・再度ビルドインアドレスリストが生成される。
7.4項、5項の作業とテストを実施したところ、やはり、「すべての会議室を削除すると、
Ex2010のほうでエラーが発生する」。
という流れになっています。
発生するエラーはすべて同じで、以下のものです。
Request
Url: https://ex2010:443/owa/forms/premium/AddressBook.aspx?ae=Dialog&t=AddressBook&a=PickRecipients
User host address: *.*.*.* (伏字)
User: テスト 6
EX Address: /o=TestOrg/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=user50342c66
SMTP Address: t0011@mx.exchange.local
OWA version: 14.1.218.13
Mailbox server: ex2010.exchange.localException
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)
個人的には、OWA2010の宛先選択アクションの処理において、存在しないはずのアドレスリストをなぜか、
確認に行き、エラーとなっているように思えます。
(OWA2007では発生していない)
Ex2010だけの環境で、本事象が発生するかは確認できていませんが、このままだと問題がある
ため、どなたか回避方法をおしえていただければと思います。
私の情報収取不足が原因かもしれませんが、その場合は申し訳ありませんが、参考URL等を
ご指摘いただければと思います。
よろしくお願いします。
2010年9月21日 3:22 -
駆け出し管理者さん、追加の情報ありがとうございます。
Exchange Server 2010 SP1 の環境で「すべての会議室」アドレスリストを削除したところ、
駆け出し管理者さんの事象と同様にOWAでアドレス帳を表示できずにエラーとなりました。調べてみたところ、「すべての会議室」は組織の構成のmsExchResourceAddressLists 属性に設定されており、削除した「すべての会議室」を復元すればエラーを解消できるという情報を見つけました。
(削除してはいけなかったのですね。。。)---------
(参考情報)
・IT-Professional.AT
http://it-professional.at/?p=5
New-AddressList コマンドレットで「すべての会議室」アドレスリストを作成して、その属性の値を
ADSIEdit で組織の構成のmsExchResourceAddressLists 属性に設定します。
---------
こちらの情報が参考になりましたら幸いです。
マイクロソフト株式会社 フォーラム オペレーター 星 睦美- 回答としてマーク 駆け出し管理者 2010年9月22日 5:47
2010年9月22日 5:14 -
星様
駆け出し管理です。
情報提供ありがとうございます。
実は、私もADSIエディターで、msExchResourceAddressListsを見つけ、
この値が「削除したはずのアドレスリストの値」になっていることを確認したため、
「空白」にして、エラーが発生しなくなったことを先ほど確認したところでした。
そこで、この結果を投稿させてもらおうとこちらを除くと、ちょうど星様からの回答もあり、
「ホッ」としたところです。
Ex2007とEx2010のOWAで挙動が異なることについては、やはりバージョン違い
による細かな違いなんだと思います。あと、正規手順で削除しているので、AD上の
オブジェクトも消えてほしいところですが、このあたりは修正パッチに期待して。。。
私どもの運用では、「すべての会議室」は利用する予定がないため、「空白」か「GAL」を
設定する方向で行きたいと思います。
何かとご尽力いただきありがとうございました。
2010年9月22日 5:46