2007年05月15日

クライアントPCのローカルAdministratorsには、ドメインのグループを追加しておくと便利

ActiveDirectoryのメリットは「集中」と「分散」管理があります。
相反する二つの管理手法ですが、ActiveDirectoryでは割とうまく実現できています。

AD上ではOUという単位で全てを管理すると効率的です。
全てとは例えばユーザ、グループ、コンピュータです。

誰かにある範囲のものを管理して欲しければ、

1.OUを作って、
2.その中に管理して欲しいものを放り込み、 
3.OUに対して委任すれば完了です。

ただし、委任された人ができる事というのは、
そのOUの中のオブジェクトの追加、更新、削除です。
例えば、クライアントPCにソフトをインストールする権限などは持てません。

これが可能なのはDomain Adminsのメンバーだけで、
このメンバーはドメイン全ての者に対して、管理者権限を有します。

普通、管理を委任するという事は、その範囲のもの対して
フルコントロール権限を持つ事ですが、ADではそこまで大きな権限を委任できません。

しかし、あるOUにあるコンピュータに対して、ある担当者に管理者権限を与えたい、といった要件はよくある事です。
予めコンピュータのAdministratorsグループに、ドメインのグループを追加しておいて、そのドメイングループのメンバーに担当者を加えるのがその際の解決策です。

ただ、こういった案件は突発的に起きたりするもの。
また、異動者のPCまで管理を再設定する必要があるので、
その手間を省きたいと思います。
1.ドメインにグループAを作成
2.ローカルのAdministratorsにAグループを追加するスクリプト作成
3.委任するOUを作成
4.グループポリシのスタートアップスクリプトに、2のスクリプトをセット
5.管理するコンピュータをOUに放り込む

こうする事で、わざわざAdministratorsにグループを追加するという、
事前準備が不要になり、コンピュータをドラッグするというステップだけで、完全に担当者に委任する事が可能になります。

ちなみにスクリプトは以下のようなものです。

strDomainGroupPath = "WinNT://ドメイン名/ドメイン上のグループ名"

set oNet = Wscript.CreateObject("WScript.Network")
strComputer = oNet.ComputerName
strLocalAdminsPath = "WinNT://" & strComputer & "/Administrators"

Set oGroup = GetObject(strLocalAdminsPath)
Set oUser = GetObject(strDomainGroupPath)

if oGroup.isMember(oUser.ADsPath) then
WScript.Echo strDomainGroupPath & " は既に " & strLocalAdminsPath & " のメンバーです"
else
ret_value = oGroup.Add(oUser.ADsPath)
end if


管理のステップを減らすための努力を行う事が大切です。

参考図書
WindowsサーバーHacks―管理者必携のテクニック&WSHスクリプト100選
Windowsのシステム管理を行う時に、欲しいスクリプトそのものがズバリ・・・
とはいきませんが、参考になるくらいのものは沢山あります。
暇なときに見ると、こんな事もできるのかー、という発見があります。

ADSIスクリプトによるWindows2000システム管理
WMI,ADSIは日本語情報が無くて本当に困ります。
これを読んで試行錯誤してなんとか基礎的な部分を得たかな....という感じです。
この本でマスターは難しいかもしれませんが、手助けにはなります。

posted by dddrive at 00:06 | Comment(0) | TrackBack(0) | ActiveDirectory
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/41817419

この記事へのトラックバック