2006.04.19

Exchangeの入ったWindowsドメインのユーザーをプログラムで操作

(最近仕事で関わったネタの備忘録。ちょっと内容はマニアックです)

Windowsドメインのユーザーを作成したり修正したりする作業をプログラムで行う場合がある。
通常は ADSI を使ってユーザーを作る。(広く知れ渡っているので方法は略)
 
 
しかし、そのドメインに Exchangeサーバーが入っていて、ActiveDirectoryのスキーマが変更されている場合、
ADSIだけではユーザーのExchange関連のプロパティを扱い切れず、設定を変更できなかったりする。

こういう場合は Exchange関連の操作を行うオブジェクト CDO を利用する。
例えば以下、

Set loPerson= CreateObject( "CDO.Person" )
loPerson.DataSource.Open "LDAP://~~", , adModeReadWrite, , , gsAdminID, gsAdminPassword
loPerson.Fields( "sn" )= "hogehoge"
loPerson.EmailAddresses= Array( "SMTP:main@domain.com", "smtp:sub@domain.com" ) ' メールアドレスを複数付与する
   :(略)

プロパティによってはインターフェイスというものを介して設定しなくてはいけない場合もある。

Set loMbxStore= loPerson.GetInterface( "IMailboxStore" )
IMailboxStore.EnableStoreDefaults= False
IMailboxStore.StoreQuota= 8000000 ' メールボックスの容量制限をする
IMailboxStore.OverQuotaLimit= 10000000
IMailboxStore.HardLimit= 12000000
   :
Set loMbxStore= loPerson.GetInterface( "IMailRecipient" )
IMailRecipient.AutoGenerateEmailAddresses= False ' 受信者ポリシーでメールアドレスを自動付与しない

いずれの設定も、まとめて以下で更新することになる。

  :(略)
loPerson.Fields.Update
loPerson.DataSource.Save
   

これらについての情報は Microsoft が提供している Developers 向けのドキュメント (MSDN Library)から
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/exchangesvr.asp
Servers and Enterprise Development
 → Microsoft Exchange Server
  → SDK Documentation
   → Reference をたどる。

ただし、日本語化されているドキュメントは皆無で、ほぼ英語でしか情報が得られない。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
ichikawa