うちは未だに NT ドメインなんです。
ユーザーのグループが入れ子にできない面倒なシステムなんです。

もう身の回りがほとんど NT 系の OS になったんで、自分とこに共有フォルダを作成してアクセス制限を付けるユーザーが多くなったのね。
んでドメインで設定してるグループ単位でアクセス権を与えたりしだしたらしいんだけど、自分がどのグループに登録されていて、相手はどのグループに登録されているか、っていう問い合わせが多くなってきた。

グループは3つのカテゴリーで作成されてる。
1つは「組織系」
組織表の部署名になぞらえたグループね。
まぁグループを作成する場合の基本だね。
# だけど入れ子にできないから最大公約数的に作ってるわけで、必ずしも組織を正しくモデル化してない。

2つは「役職系」
各所属の役職者たちを位で横にまとめたグループ。
「ここから先は課長以上」とかするため。

3つは「その他」
例えば各種委員会など。
これも必要。

で、1人の人がいくつものグループに登録されていることもあるし、所属する組織がグループ化されていない役職者とかもいるわけで、ユーザー自身がこの意味を理解した上で表を見てもらいたい、と。


やっと本題。

ADSI ですな。
開発用の XP で VBScript を作る。

開発用の XP でネットワーク越しに実行。
ユーザーはボク。権限は Domain Users 以外に Account Operator が付いてる。
取れた。

Domain Users だけのユーザーでも実験。
取れた。(取れちゃっていいの?)


DC (NT 4.0 Server) に ADSI 2.5 をインストール。
DC 上で上記スクリプトを実行。
ユーザーは Domain Administrator
取れない。
# そいや再起動してない。
# サーバが空かないので再起動できない。

スクリプトを ASP で作成し直しサーバにアップロード。
その場で動的に「ユーザーの一覧」「グループの一覧」「各グループとユーザーのマッピング一覧」を出力する。
これをネットワーク越しの PC からボクのユーザーで実行。
当然動くはずがない。
安い権限のユーザーでも実行。
動かない。

原因と考えられるもの
1. サーバのローカルで ADSI が動かない
2. IIS の匿名ユーザーの件

サーバでスクリプトファイルを実行してみても動かないんだから IIS が実行しても同じ結果になるのは当然。
機会をみて再起動させてみよう。
VBScript 5.6 も入れてみよう。
うん、まずはコレだよな。
で、スクリプトファイルを Administrator で実行してみて動くようになればいいわけだ。

IIS は匿名ユーザーでのアクセスになってるんだけど、どうやらこれもダメな原因になりそう。
ADSI ってのはサーバの設定変更もできちゃうわけで、権限が強いユーザーじゃないと実行できない、と。
匿名ユーザーに実行を許すほど甘いもんじゃないらしい。
Windows のユーザー認証を使ったページで実行しろ、と。
でもそうなると大多数のユーザーが Domain Users 権限なわけだが、もしかしたら Administrator 権限がないとダメかもしれないらしい。
こりゃ無理か・・・

じゃぁ Domain Users 権限しかないユーザーが自分の PC から VBS ファイルを実行してユーザーの一覧が取得できたんだ?
って疑問も残る。

ここら辺、少しずつ整理していこう。
冬までには Windows 2003 の AD に移行予定だけど、きっと AD になっても役立つはずだし。

てことで、我々システム管理者2名がユーザーやグループの改廃を行った際にスクリプトを実行してテキストファイルをサーバのディレクトリに作成するようにした。
ユーザーはイントラのページからそのテキストファイルを開くことができる、と。
これで逃げよう。