質問者
メールボックスの作成について

質問
-
Exchange2003まではCDOEXMより、メールボックスを作成することができましたが、SDKによるとCDOEXMはExchange2007では搭載されていないとのことです。
Exchange 2007 Does Not Include All Exchange Server 2003 APIs
The following APIs are not available in Exchange 2007:
- Collaboration Data Objects for Exchange Management (CDOEXM)
- Windows Management Instrumentation (WMI)
- Collaboration Data Objects for Exchange Workflow (CDOWF)
- Exchange Web Forms
- At Functions
- Outlook Web Access Customization
- Exchange Server 2003 Task Wizard and the XML files it produced
ただ、不明なのがCDOEXMが使用できないとのことですがSDKのサンプルスクリプトの"CreateMailboxBeforeLogon.vbs"では
Set objServer = CreateObject("CDOEXM.ExchangeServer")
といった一文があり、実行するとエラーとなってしまいます。従って、プログラム的にメールボックスを作成するには、今のところ判明している方法ではExchange Management Shell(Windows PowerShell)にて、new-Mailboxコマンドを利用する方法が考えられます。
確かに、このコマンドを直接実行した場合はきちんとメールボックスは作成されるのですが、VB.NETなどからこのコマンドを呼び出す方法が不明です。
普通のEXEファイルのように System.Diagnostics.Process から呼び出せばよいのでしょうか?(その場合 StartInfo.FileName ・ StartInfo.Arguments は?)
また、Exchange Management Shell 以外にもCDOEXMを使用たしように、プログラムからメールボックスを作成するインターフェースなどご存知であれば教えていただきたく思います。
よろしくお願いします。2006年9月20日 2:50
すべての返信
-
結論として、やはりメールボックスの作成はExchange Management Shellを利用してプログラムから呼び出す形になるようです。
プログラムから Exchange Management Shell を呼び出す方法はこちら
http://www.viveksharma.com/techlog/2006/07/27/sample-code-calling-exchange-cmdlets-from-net-code/
が参考になるかと思います。
Exchange Management Shell の new-Mailbox というcmdletを使用すれば、ユーザー作成からメールボックの割り当てまで全て行ってくれるのですが、new-Mailbox の引数でpassword を設定する場合にプログラムから呼び出すにはに少々問題があることがわかりました。
http://winzenz.blogspot.com/2006/08/creating-new-mailbox-using-powershell.html
簡単にいいますと、セキュリティー強化の為と思われますが、テキストでパスワードを引数として渡すことができない仕様になっています。
その為、単純にプログラムから呼び出すとエラーとなってしまいます。
この問題を回避するには、System.DirectoryServices クラスを利用して一度ユーザーを作成してから、Exchange Management Shell のEnable-Mailbox cmdlet にてメールボックスを割り当てる方法が適切と思います。
実際にこの方法にて問題ないことが確認できました。
2006年9月21日 8:14 -
# CDOECM ネタではないのですが,タイトルが内容にふさわしいので,このまま続けさせていただきます。
Exchange Server 2000 / 2003 では Active Directory に新規ユーザーを作成すると同時にメールボックスを作成できました (= Exchange 管理ツールがドメイン コントローラにインストールされている場合など)。
が,Exchange Server 2007 ではそのようなことはできず,ユーザーを作成した後に別途 Exchange Management コンソールからメールボックスを作成するよりないのですね。新規ユーザーに対してメールボックス (メールアドレス) を付与するのは当然という考えに立てば,ユーザー作成と同時にメールボックスも同じ流れで作成できるのはごく自然なことと思うのです。
が,Exchange Server 2007 では「新規ユーザーはそのためのツールで作成,しかしそのユーザーにメールボックスを付与するのはまた別のインターフェイスで」というように 2 つのインターフェイスを起動させなければならないということで,いささか不便になったように感じました。以下,Exchange Server 2007 ベータ2 リリース ノートから:
http://download.microsoft.com/download/8/d/c/8dc5a8ca-e75e-47c0-b655-e0f82b90780d/E2K7_RelNotes_JA.htm-------
Exchange 2007 オブジェクトの作成に Active Directory ユーザーとコンピュータを使用しない Exchange システム マネージャがインストールされている場合、Active Directory ユーザーとコンピュータで Exchange 2007 サーバー上にメールボックスを作成することができます。しかし、この操作はサポートされていません。この方法で作成したメールボックスは、Exchange 2007 サーバー上にあるにもかかわらず "従来の" メールボックス (Exchange 2003 または Exchange 2000 のメールボックス) として扱われます。Exchange 2007 には、ユーザー属性を更新するための受信者更新サービスはありません。Active Directory ユーザーとコンピュータで作成されたユーザーは、新しく作成されたメールボックスを構成するように構成された受信者更新サービスを持つ Exchange Server 2003 サーバーまたは Exchange 2000 Server サーバーが組織内にないと完全には構成されません。2006年10月12日 4:10 -
Exchange 2007 でもユーザー作成と同時にメールボックスの作成が「Exchange Management Console」から一つのインターフェースで可能です。
メールボックスの新規作成より「新しいユーザー」を選択することになります。
ですが、要望としてActiveDirectoryの管理ツールからメールボックスを作成したいと言うことであれば、おっしゃるとおり2ステップ必要となりますね。
http://forums.microsoft.com/TechNet-JA/ShowPost.aspx?PostID=757028&SiteID=36
こちらでも書いたようにかなりGUIのインタフェースが変更されているので、こういった問題も結構ありそうです。
2006年10月12日 5:39 -
ご教示ありがとうございます。
> Exchange 2007 でもユーザー作成と同時にメールボックスの作成が「Exchange Management Console」から一つのインターフェースで可能です。
Exchange Server 2007 では,[Active Directory ユーザーとコンピュータ] スナップインではなく,Exchange 側から AD ユーザーとメールボックスを作ってしまうんですね。
すなわち,今までとは逆ということですね。
よく分かりました (やってみたところ,確かにこれまで同様 1 ステップで出来ました)。
2006年10月12日 6:20