3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援→開発戻り浦島太郎状態の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。

(ADSI)ActiveDirectoryのオブジェクトの属性をのぞきたい

ActiveDirectory上のユーザーアカウントやグループオブジェクト等のオブジェクトには非常に多くの属性があります。

それらオブジェクトの生を情報をのぞく方法というかツールがあるようです。

それはMicrosoftが提供している ADSI Edit というツールです。

英語のツールですが、特に難しい使い方はありません。

オブジェクトを選んでコンテキストメニューからプロパティで設定されている属性が覗けます。

(スクリーンショット撮るの忘れたんですが、画像検索でググればハードコピーいっぱい出てきます。)

このツールは元からは入ってないようですが、MSダウンロード:XP SP2サポートツールの中に含まれているようなので、インストールしてみました。

インストーラの「Select An Installation Type」で「Complete」を選ばないと入らないようです。

デフォルトだと、%Program Files%¥Support Tools にインストールされます。

ADSI Edit本体へのパスはデフォルトだと下記になります。

%Program Files%¥Support Tools¥adsiedit.msc

ショーカット等も作成されないので、作成しとくと便利かもしれません。

また、動かす時はドメイン管理者権限でないとみれないオブジェクトも多々あります。

取りあえずわかりづらく必要そうな属性を調べて見ました。

┌───────────┬────────────────────────────────────────────────────────┐

│属性名 │説明 │

├───────────┼────────────────────────────────────────────────────────┤

│Userオブジェクト │ │

├───────────┼────────────────────────────────────────────────────────┤

│objectGUID │オブジェクトのGUID(ActiveDirectory内で一意のはず) │

├───────────┼────────────────────────────────────────────────────────┤

│objectSID │セキュリティ識別子。S-1-5-21-……-513の形式 │

├───────────┼────────────────────────────────────────────────────────┤

│sAMAccountName │ユーザー・ログオン名(Windows 2000以前の互換ログオン名)。 │

├───────────┼────────────────────────────────────────────────────────┤

│createTimeStamp │作成日? │

├───────────┼────────────────────────────────────────────────────────┤

│modifyTimeStamp │最終変更日? │

├───────────┼────────────────────────────────────────────────────────┤

│WhenCreated │作成日 │

├───────────┼────────────────────────────────────────────────────────┤

│WhenChanged │最終変更日 │

├───────────┼────────────────────────────────────────────────────────┤

│userPrincipalName │ユーザー・ログオン名(Active Directory環境で利用されるユーザー名)。例:Tyamada@domain.local │

├───────────┼────────────────────────────────────────────────────────┤

│displayName │表示名。例:山田 太郎 │

├───────────┼────────────────────────────────────────────────────────┤

│logonCount │ログイン回数。ドメインコントローラが複数ある場合は別個に管理してる。DC間での複製はされない。 │

├───────────┼────────────────────────────────────────────────────────┤

│lastLogon │最終ログイン日時。ドメイン間では複製できない。 │

├───────────┼────────────────────────────────────────────────────────┤

│lastLogonTimestamp │最終ログイン日時。ドメイン間で複製される。ただし、複製期間は14日間隔。 │

├───────────┼────────────────────────────────────────────────────────┤

│userAccountControl │ユーザー アカウントのプロパティを開いて、[アカウント] タブの各オプションのbitフラグ。無効か有効かもここで判断。 │

├───────────┼────────────────────────────────────────────────────────┤

│distinguishedName │識別名。DN表記(CN=hoge,OU=eigyou,DC=domain,DC=jp) │

├───────────┼────────────────────────────────────────────────────────┤

│memberOf │ユーザが所属しているグループ。配列でDN表記識別名として帰る。 │

├───────────┼────────────────────────────────────────────────────────┤

│sn │姓 │

├───────────┼────────────────────────────────────────────────────────┤

│givenName │名 │

├───────────┼────────────────────────────────────────────────────────┤

│cn │CN名 │

├───────────┼────────────────────────────────────────────────────────┤

│description │説明 │

├───────────┼────────────────────────────────────────────────────────┤

│accountExpirationDate │アカウントの期限。日付形式帰る。 │

├───────────┼────────────────────────────────────────────────────────┤

│accountExpires │アカウントの期限。1601 年 1 月 1 日を基準にナノ秒単位で時間を記録する長整数型の値 │

├───────────┼────────────────────────────────────────────────────────┤

│usncreated │AD内部用? │

├───────────┼────────────────────────────────────────────────────────┤

│usnchanged │AD内部用? │

├───────────┼────────────────────────────────────────────────────────┤

│objectcategory │オブジェクトのカテゴリ │

├───────────┼────────────────────────────────────────────────────────┤

│pwdlastset │ユーザーが最後にパスワードを設定した日時 0なら次回パスワード変更必要あり。 │

├───────────┼────────────────────────────────────────────────────────┤

│adsPath │オブジェクトのパス LDAP://xxxx/CN= │

├───────────┼────────────────────────────────────────────────────────┤

│グループオブジェクト │ │

├───────────┼────────────────────────────────────────────────────────┤

│canonicalName │hogehoge.jp/Users/... オブジェクトのパス? │

├───────────┼────────────────────────────────────────────────────────┤

│cn │グループ名 │

├───────────┼────────────────────────────────────────────────────────┤

│createTimeStamp │作成日? │

├───────────┼────────────────────────────────────────────────────────┤

│description │説明 │

├───────────┼────────────────────────────────────────────────────────┤

│distinguishedName │識別名。DN表記(CN=hoge,OU=eigyou,DC=domain,DC=jp) │

├───────────┼────────────────────────────────────────────────────────┤

│member │グループのメンバ。配列でDN表記識別名。 │

├───────────┼────────────────────────────────────────────────────────┤

│modifyTimeStamp │最終変更日? │

├───────────┼────────────────────────────────────────────────────────┤

│name │グループ名 │

├───────────┼────────────────────────────────────────────────────────┤

│objectGUID │オブジェクトのGUID(ActiveDirectory内で一意のはず) │

├───────────┼────────────────────────────────────────────────────────┤

│objectSID │セキュリティ識別子。S-1-5-21-……-513の形式 │

├───────────┼────────────────────────────────────────────────────────┤

│sAMAccountName │グループ名 │

├───────────┼────────────────────────────────────────────────────────┤

│usncreated │AD内部用? │

├───────────┼────────────────────────────────────────────────────────┤

│usnchanged │AD内部用? │

├───────────┼────────────────────────────────────────────────────────┤

│objectcategory │オブジェクトのカテゴリ │

├───────────┼────────────────────────────────────────────────────────┤

│adsPath │オブジェクトのパス LDAP://xxxx/CN= │

├───────────┼────────────────────────────────────────────────────────┤

│WhenCreated │作成日 │

├───────────┼────────────────────────────────────────────────────────┤

│WhenChanged │最終変更日 │

├───────────┼────────────────────────────────────────────────────────┤

│groupType │グループの種類。グルーバルトか、ドメインローカルとか。。。 │

└───────────┴────────────────────────────────────────────────────────┘

また、属性についてはMSサポート:Windows 2000 スキーマ内での既定 Active ディレクトリの属性で一部説明されています。

(ちなみに余談ですが Active Directory スキーマだと、どういうクラスや型があるかわかるようですが、いまいちまだ不明です。

%systemroot%¥system32¥schmmgmt.mscスキーマ見れるようですね。)