標題にある開発言語にてADSIを勉強しています。
ADユーザの住所タブの各項目6項目について
セットしたいのですが、該当するメソッドがわからず
困っています。
MSDNをみたのですが、6項目全てが実装されておらず
悩んでいます。
住所タブの6項目
・国/地域
・郵便番号 →IADsUser::put_PostalCodes
・都道府県
・市区町村
・私書箱
・番地
もしくは、Visual C++6.0のADSIの参考本などご存知でしたら
情報いただけませんか?
お願い致します。
以上
まず・・・
http://www.microsoft.com/japan/technet/scriptcenter/tools/admatic.mspx
ここや、検索したら・・・
http://touzokudan.blog31.fc2.com/blog-entry-6.html
こういうのがありますが、見られてます?
以上。
返信ありがとうございます。
見ていませんでしたが、2段目のサイトの下記リンクだけは
みていました。
http://touzokudan.blog31.fc2.com/blog-date-200612.html
C++にいまだ初心者のため、WSHからのC++変換がわからない状態です。
↓
new_user->put_Description(L"このアカウントはテスト用です");
このような書式で、put_xxxxxxxx()では、無理と解釈してよいですか?
またproperty_name[item]といったように配列で取得するようなイメージが筒か見とれたのですが、ADSIのADsGetObjectを利用した場合の「都道府県」や「番地」などの指定をどのようにPG作成をすればよいか判らないです。
もうすこしだけ、C++に歩みよったアドバイスをいただけませんか?
よろしくお願いします。
再度・・・
http://www.microsoft.com/japan/technet/scriptcenter/scripts/ad/users/modify/default.mspx
以上。参考まで。
追伸
http://www.codeguru.com/forum/showthread.php?t=309450
ここのシンプルな方法と上記のURL中のitem名等合わせれば
実現できると思いますが。
以上。
例えば、私書箱情報を削除するサンプルがこれですね。
http://www.microsoft.com/japan/technet/scriptcenter/scripts/ad/users/modify/usmdvb09.mspx
objUser が IADsUser でしょう。
IADsUser のリファレンス
http://msdn.microsoft.com/en-us/library/aa746340.aspx
には、PutEx というのがありませんが、IADsUser は IADs を継承しており、IADs に PutEx がありますので、IADsUser::PutEx が使えます。
http://msdn.microsoft.com/en-us/library/aa746353.aspx
あとは、プロパティ名ですが、MSDN の IADs 周りを見ても見つかりませんね。
このあたりからそれっぽいものを見つけることになるのでしょうか。
http://msdn.microsoft.com/en-us/library/cc219751.aspx
オショウさん、aetosさん貴重な情報ありがとうございます。
2つの提供頂いた情報をもとに、解決できそうです。
最後にもう1点、関連項目としての不明点なのですが、
各プロパティにセットできるサイズ長についてです。
リファレンスから探すことができなかったのですが
セット時に、try{}catchでエラーを拾い上げるしかないでしょうか?
http://msdn.microsoft.com/en-us/library/cc219751.aspx
ここの各プロパティに載ってませんかね。
文字列に関しては、rangeLower と rangeUpper がそれぞれ、最小長と最大長だと思います。
データ型が何かは、omSyntax とか attributeSyntax を見ればいいみたいです。
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/oct05/hey1028.mspx
http://msdn.microsoft.com/en-us/library/cc223177.aspx
aetosさん、丁寧にリンク貼り頂きまして
ありがとうございました。
プロファイルのプロパティのみ、最大値がわからなかったので
もしわかるようでしたら、お願いします。
cn: Profile-Path
ldapDisplayName: profilePath
attributeId: 1.2.840.113556.1.4.139
attributeSyntax: 2.5.5.12
omSyntax: 64
isSingleValued: TRUE
schemaIdGuid: bf967a05-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: fCOPY
attributeSecurityGuid: 5f202010-79a5-11d0-9020-00c04fc2d4cf
systemFlags: FLAG_SCHEMA_BASE_OBJECT
schemaFlagsEx: FLAG_ATTR_IS_CRITICAL
omSyntax: 64より、UNICODEのstringと言うのが
読み取れましたが、最大値は、ないということでしょうか?
初歩的な質問かも知れませんが、お願い致します。
今さらだけど、ここの方が見やすいかも
http://msdn.microsoft.com/en-us/library/ms675089.aspx
で…えっと。
rangeUpper が定義されていないとはどういう意味なのか、ということが明確に書いてある場所が見つかりません。
が、記述ミスではなく、定義されていない属性もある、ということは間違いありません。
推測では、たぶん無制限なんじゃないかな、とは思いますが。
もっとも、無制限とは言え、パス文字列ですから、実用上、MAX_PATH(260)が最大長だと思います。
この長さを超えるパスを持つファイルも作れますが、エクスプローラやコマンドプロンプトではアクセスできません。
aetosさん、返答ありがとうございます。
無事解決できました。
MAX_PATH(260)の知識を持ち合わせていなかったので
MSDNとMAX_PATHの理解により
わかりやすく対応できました。
長い間、ありがとうございました!