[ADSI] LDAP プロバイダで PasswordExpirationDate 属性を使ったら 0x800500D

みなさんこんばんは。ういこです。   今月は色々あったので、たまっていたネタをここ二日ほどで激しく放出しております。通常の 3 倍放出されております。でも、相変わらずの View の少なさによっぽど私たち不人気なんだなーと思ってちょっと落ち込んでます。もう、なんか要件だけ書く形式にしちゃおうかな…と思い、最近「つぶやき」はオミット気味です。   そうそう、ILM 一家ですが、不人気なのでユニット解散の危機かもしれないです。来期 (7 月から) 一家解散になっちゃったりして。もう、マヤの大予言とか、カバラの大予言とか、MMR とか、普通に会話できる最高のチームなのにもったいないなあはははは。   というわけで今日のお題です。    【今日のお題】 ドメインのポリシーで 30 日間で設定しているパスワードポリシーを取得するアプリケーションを作成している。LDAP プロバイダを用いて、IADsUser プロパティの PasswordExpirationDate 属性を確認する実装を入れてみた。実行時に 「例外 0x800500D」が発生する。対処方法を知りたい。   ★LDAP プロバイダ ⇒ うまくいかないんですよこれが ‘ *** Sample (Not good) *** objUser = GetObject(“LDAP://CN=Uiko Yokoi,OU=UserAccounts,DC=jpdsilm, DC=contoso,DC=com”) objUser.Getinfo() Wscript.Echo(objUser.Get(“PasswordExpirationDate”)) Wscript.Echo(objUser.PasswordExpirationDate) ‘ *** Sample (Not good) ***   ★WinNT プロバイダ…


[ADSI TroubleShooting] : 大量のユーザ登録処理とかを一気に行うとポート枯渇が起きる

みなさまごきげんよう。ういこです。   最近私の近辺が狂ったようにダイエットしています。ILM 一家のお父さんなんて、お弁当を買いに行くたびに「これはカロリーは…あっ、XXX kcal もある!!」なんて思春期の小娘のようなことをいちいち言うですよ。お父さん、食べて運動するのがシェイプアップの本筋ですよ!! そして私はクリスマス、家族に宇宙戦艦ヤマトの万歩計をあげたのですが、まさかイスカンダルまでテクシー (※徒歩) で行くんじゃないだろなと思ってたら本当にそうでした。14 万 8000 光年を歩くらしいです。しかもタイムリミットがあるらしく、見ているとしょっちゅう沖田艦長に「このままでは地球が滅亡する…!」と脅されているようです。なんでも、メタボクリーナー (内臓脂肪除去装置) をゲットしに行くとか。なかなか歩けない生活の家族の人は、たまに手でシャカシャカ振ってますがいいんですかそれ。   そんなオトコ心はさておいて、今日の話題です♪   【今日のお題 】 あら大変!ADSI で大量にユーザの登録とか変更とかしてるとエラーが起きちゃうんですってよ!   世のIT 管理者様がいよいよ腕の見せ所を魅せる時期がやってまいりました!! そう、会計年度の切り替わりです。世は不景気ながら会社の統合、新人の入社などで激しく Directory Server にユーザ オブジェクトを追加したり変更したり削除したり…しまくりますよね?4 月ってそういう月って言うのが多いのではないでしょうか。   ところが、そんなあなたががんばって気張ってつくったスクリプトやプログラムが、何千件かぐるぐるどっか~んと追加してたら突然無常な「操作エラーです。」とか出やがられた!…そんなとき、どこから切り分けていきますか? 弊社にお問い合わせいただいても良いのですが、この不景気のご時勢貴重な Labor やインシデント、費用などを賢くセーブするためにまだまだ出来ることがあります。 現象   まず、以下の条件に当てはまる場合、ポート枯渇が原因である可能性がかなり高いです。   ・ADSI を使用し、大量にユーザ登録、変更などの処理を行っている。(何千件も) ・ループを使い、処理を激しくハムスターの車上等くらいの勢いでぶんまわしている。   どうですか?当てはまりますか? 当てはまるようならば、本当にポート枯渇かを確認していきましょう。手段は至極簡単。Netstat コマンドでOS の一時ポートの空き状況を見ればよいです。   取得対象は、サーバ、クライアント(プログラム実行端末)双方がいいでしょう。   例 : CMD Shell 上で…