第 1 部 : 拡張権利

このドキュメントは、スクリプトを使用した Active Directory セキュリティの管理について紹介するシリーズの第 1 部です。本シリーズは、全 3 部で構成されます。第 1 部では、拡張権利について、および第三者のパスワードの変更やリセットなどを行う拡張権利をユーザーに付与する方法について説明します。第 2 部では、Active Directory のプロパティ設定について説明し、定義済みのユーザー属性 (ユーザー ログオン関連の属性など) の読み取りと書き込み権限を委任できることを紹介します。最後の第 3 部では、Active Directory セキュリティの詳細な側面について例を挙げ、1 ユーザーまたは複数ユーザーの 1 つの属性 (電話番号など) を管理する権利をユーザーに付与する方法を説明します。

このドキュメントでは、随意アクセス制御リスト (DACL) とアクセス制御エントリ (ACE) を始めとしたセキュリティ記述子について、基本的な知識を備えていることを前提として説明します。

トピック
第 1 部 : 拡張権利の付与
Active Directory の拡張権利
拡張権利をユーザーに付与するためのスクリプトを記述する
セクション 1: 定数を定義する
セクション 2: オブジェクトのセキュリティ記述子を取得する
セクション 3: 新しい ACE の作成と構成
セクション 4: セキュリティ記述子に新しい ACE を書き込む
拡張権利を OU 内の全ユーザーに付与する
次回の内容

第 1 部 : 拡張権利の付与

Active Directory の機能 (または Active Directory が実装していない機能) を説明する場合、必ず、"Active Directory は電話帳に似ている" という比喩が使用されます。これは、ぴったりの表現です。結局のところ、電話帳は、人物、企業、政府組織などの実在するものに関する情報を格納するために使用されます。同様に、Active Directory は、ユーザー、コンピュータ、プリンタなどの実在するものに関する情報を格納するために使用されます。電話帳で情報を迅速かつ簡単に検索する機能と、Active Directory で情報を迅速かつ簡単に検索する機能を比較すると、わかりやすく適切にたとえることができます。

言うまでもないことですが、同じ様に事実に合ったたとえとして、"Active Directory はファイル システムに似ている" というものがあります。ファイル システムは、セキュリティ保護可能なオブジェクトで構成されます。ユーザーがアクセスするファイルとフォルダ、ユーザーに許可するアクセスの種類を詳細に制御できます。たとえば、あるユーザー グループについて、フォルダとそのコンテンツにアクセスできないように指定できます。別のユーザー グループに、そのフォルダの読み取り権限を付与することも可能です。そのフォルダ内で、ユーザー A に対し、1 つのファイルを例外としてフォルダへの制限なしのアクセス権を付与し、例外とした 1 ファイルについては読み取りはできるが変更はできないようにすることも可能です。このようなアクセス許可は、各ファイルやフォルダに組み込まれたセキュリティ記述子を使用して管理されます。

Active Directory でも同様に操作されます。Active Directory に格納されるオブジェクト (ユーザー アカウント、コンピュータ アカウントなど) は、すべてセキュリティ保護可能なオブジェクトです。ユーザーがアクセスできるオブジェクト、ユーザーに許可するアクセスの種類を詳細に制御できます。Active Directory オブジェクトには、いずれもセキュリティ記述子があります。これは、ファイルとフォルダに組み込まれたセキュリティ記述子とよく似ています。たとえば、[Active Directory ユーザーとコンピュータ] で、ユーザー アカウントを右クリックし、[プロパティ] をクリックします。表示されるダイアログ ボックスで [セキュリティ] タブをクリックします。次のように表示されます。

図に示すように、これはセキュリティ記述子です。トラスティ (オブジェクトへのアクセスが許可または拒否されたユーザーまたはグループ) と、それらのトラスティに許可 (または拒否) された権限 (読み取り、書き込み、フル コントロールなど) が一覧されます。Active Directory オブジェクトと、ファイルやフォルダとの違いを織り込む必要はありますが、このセキュリティ記述子と、ファイル システム オブジェクトに付属するセキュリティ記述子はよく似ています。

メモ   Active Directory オブジェクトに付属するセキュリティ記述子を読み取ることができるスクリプトや、他の Active Directory セキュリティ スクリプトに関心がある場合は、ここをクリックしてください。

ページのトップへ

Active Directory の拡張権利

Active Directory セキュリティでは、多くの場合、ユーザーまたはグループに、オブジェクトまたはオブジェクトの特定プロパティに対する読み取りまたは書き込みのアクセス権を付与する操作を行います (たとえば、あるユーザーに対し、別のユーザーの自宅の電話番号を変更する権利を付与し、他の属性については変更する権利を付与しないこともできます)。ただし、こうした権利の他に、"拡張権利" と呼ばれる権利があります。拡張権利とは、個々の属性に対する読み取り/書き込みのアクセス権などの権利ではなく、ユーザー パスワードの変更など、特別なタスクの実行を許可する権利です。39 の拡張権利があり、そのうち 4 つはユーザー アカウントに適用されます。この 4 つの拡張権利を表 1 に示します。すべての拡張権利は、「拡張権利のリファレンス」ページに一覧されています。

表 1. ユーザー アカウントに適用可能な拡張権利
拡張権利 説明

パスワードの変更
{ab721a53-1e2f-11d0-9819-00aa0040529b} [テキスト]

ユーザー アカウントのパスワードの変更を許可します。新しいパスワードを設定するには、対象ユーザーの現在のパスワードを知っている必要があります。[テキスト]

パスワードのリセット
{00299570-246d-11d0-a768-00aa006e0529} [テキスト]

ユーザー アカウントのパスワードのリセットを許可します。新しいパスワードを設定するために、対象ユーザーの現在のパスワードを知っている必要はありません。[テキスト]

受信者
{ab721a56-1e2f-11d0-9819-00aa0040529b} [テキスト]

指定のメールボックスとしてメールを受信できる権利を許可します。[テキスト]

送信者
{ab721a54-1e2f-11d0-9819-00aa0040529b} [テキスト]

指定のメールボックスとしてメールを送信できる権利を許可します。[テキスト]

表 1 をよく見ると、{ab721a53-1e2f-11d0-9819-00aa0040529b} のように見慣れない表記があります。これは、オブジェクトのグローバル一意識別子 (GUID : Globally Unique Identifiers) です。拡張権利は、Active Directory では実質的にオブジェクトです。そのため、あるユーザーに別のユーザーのパスワードを変更する権利を付与する場合に、スクリプトを使ってパスワードの拡張権利を変更するには、オブジェクトの GUID を指定する必要があります。大丈夫です。これから指定方法を説明します。

ページのトップへ

拡張権利をユーザーに付与するためのスクリプトを記述する

拡張権利をユーザーに付与するための一般的なスクリプトを見てみましょう。このサンプル スクリプトでは、Ken Myer (FABRIKAM\kmyer) に対し、ユーザー Rob Young のパスワードをリセットする権利を付与します。

警告   スクリプトを見ると胃が痛くなる方もいると思います。確かに、このようなセキュリティ スクリプトが威圧的であるのは疑う余地もありません。ただし、2 つの点を覚えておいてください。まず、多くのスクリプトには、定数値の設定が伴い、そして何よりも、多くのスクリプトは定型的です。このスクリプトをテンプレートとして使用すると、必要に応じて値を置き換えるだけで済みます。

次に、スクリプトの各セクションで実行される内容を説明します。この説明で、習得がはるかに楽になるはずです。パニックに陥ることがなくなります。少なくとも、現段階では。

この処理を行うスクリプトは次のようになります。

Visual Basic
Const ADS_ACETYPE_ACCESS_ALLOWED_OBJECT = &H5
Const ADS_FLAG_OBJECT_TYPE_PRESENT = &H1
Const ADS_RIGHT_DS_CONTROL_ACCESS = &H100

Set objSdUtil = GetObject("LDAP://CN=Rob Young, OU=Finance, DC=fabrikam, DC=Com")
Set objSD = objSdUtil.Get("ntSecurityDescriptor")
Set objDACL = objSD.DiscretionaryACL

Set objAce = CreateObject("AccessControlEntry")
objAce.Trustee = "FABRIKAM\kmyer"
objAce.AceFlags = 0
objAce.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT
objAce.Flags = ADS_FLAG_OBJECT_TYPE_PRESENT
objAce.ObjectType = "{00299570-246d-11d0-a768-00aa006e0529}"                     
objAce.AccessMask = ADS_RIGHT_DS_CONTROL_ACCESS
objDACL.AddAce objAce

objSD.DiscretionaryAcl = objDACL
objSDUtil.Put "ntSecurityDescriptor", Array(objSD)
objSDUtil.SetInfo
 

皆さんが気絶していないものとして、スクリプト全体をセクションごとに見ていきます。その作業には圧倒されるかもしれませんが、このようなスクリプトは、4 つのセクションに分類されます。

定数を定義する

オブジェクトからセキュリティ記述子を取得する

新しいアクセス制御エントリ (ACE) を作成し、その ACE のプロパティを設定する

セキュリティ記述子に新しい ACE を書き込む

ページのトップへ

セクション 1: 定数を定義する

この最初の手順はオプションであり、必ずしもコードに定数を使用する必要はありません。使用しないときは、その定数が示す値を指定します。たとえば、次のコード行を変更します。

Visual Basic
objAce.AccessMask = ADS_RIGHT_DS_CONTROL_ACCESS
 

次のコード行を使用します。

Visual Basic
objAce.AccessMask = &H100
 

それでは、必須ではないのに定数を使用するのはなぜでしょうか。理由は 2 つあります。まず、定数を使用するとスクリプトが読みやすくなるからです。ADS_ACETYPE_ACCESS_ALLOWED_OBJECT という定数は、暗号のようにも見えますが、&H5 などの値よりも簡単に理解できます。同じく重要な理由として、インターネットで ADS_ACETYPE_ACCESS_ALLOWED_OBJECT を検索し、実行内容に関連する情報を見つけられるからです。インターネットで &H5 を検索するとどうなるかは、だれにもわかりません (怖くて試すことができませんでした)。

つまり、拡張権利スクリプトの手順 1 では、新しい ACE を作成するときに必要となる定数を定義しているだけです。

Visual Basic
Const ADS_ACETYPE_ACCESS_ALLOWED_OBJECT = &H5
Const ADS_FLAG_OBJECT_TYPE_PRESENT = &H1
Const ADS_RIGHT_DS_CONTROL_ACCESS = &H100
 

それでは、使用する定数とその定数の値はどうしてわかったのでしょうか。もちろん、Active Directory のセキュリティ定数ページを参照しただけです。

ページのトップへ

セクション 2: オブジェクトのセキュリティ記述子を取得する

拡張権利の付与は実に単純なプロセスです。必要なのは、新しい ACE をセキュリティ記述子に追加する操作だけです。ただし、この操作を行うには、まず、プログラムを使ってセキュリティ記述子を取得する必要があります。繰り返しになりますが、難しいことは何もありません。[Active Directory ユーザーとコンピュータ] で ACE をオブジェクトに追加するときに、そのオブジェクトのセキュリティ記述子を提示する必要があります。スクリプトにも同じことが言えます。次のコード行で、Rob Young ユーザー アカウントのセキュリティ記述子を取得します。

Visual Basic
Set objSdUtil = GetObject("LDAP://CN=Rob Young, OU=Finance, DC=fabrikam, DC=Com")
Set objSD = objSdUtil.Get("ntSecurityDescriptor")
Set objDACL = objSD.DiscretionaryACL
 

このコードでは、GetObject を呼び出して Rob Young ユーザー アカウントへの ADsPath を渡すことで、このオブジェクトにバインドしています。これは、電話番号やオフィスの住所を知るために顧客に連絡する場合とまったく同じです。オブジェクトにバインドした後、Get メソッドを使用してセキュリティ記述子を取得します。次に、そのセキュリティ記述子の随意アクセス制御リスト (DACL) に、オブジェクト参照 (objDACL) を設定します。

とりわけ、これは定型的な作業で、このコードをそのままコピーして、自分のスクリプトに貼り付けることができます。変更が必要な唯一の点は、ADsPath です (もちろん、偶然にも LDAP://CN=Rob Young, OU=Finance, DC=fabrikam, DC=Com にバインドする場合、変更は不要です)。

ページのトップへ

セクション 3: 新しい ACE の作成と構成

この手順が、拡張権利スクリプトの核心部分 (つまり、重要な部分) です。拡張権利をユーザーに付与する場合、セキュリティ記述子に新しい ACE を作成するだけであると説明しました。ここでは、新しい ACE を作成し、ACE のさまざまなプロパティを構成します。セクション 4 で、この ACE をセキュリティ記述子に書き込みます。

ACE を "メモリに" 作成する (方法はすぐに説明します) ために必要なコードは、たった 1 行です。

Visual Basic
Set objAce = CreateObject("AccessControlEntry")
 

ACE を作成してから、値を ACE プロパティに割り当てます。これらのプロパティ (と割り当てた値) については、次のセクションで説明します。

Trustee   Trustee は、単に、拡張権利を付与するユーザー (またはグループ) です。この名前は、"ドメイン\ユーザー名" の形式で入力します。たとえば、Ken Myer (kmyer) を Trustee に割り当てるには、次のコードを使用します。

Visual Basic
objAce.Trustee = "FABRIKAM\kmyer"
 

AceFlags   AceFlags は、他のオブジェクトが ACE を継承できるかどうかを示すビットフラグ プロパティです。このサンプル スクリプトでは、1 ユーザー アカウントのパスワードを変更する権利を付与しています。つまり、この ACE を継承できる子オブジェクトはありません。したがって、AceFlags を 0 に設定します。

Visual Basic
objAce.AceFlags = 0
 

AceType   AceType プロパティは、ACE がトラスティに対してオブジェクトへのアクセスを許可するか、または拒否するかを指定します。一般に、ユーザーやグループのオブジェクトに対するアクセス権を明示的に拒否することは、良い考えです。アクセス許可とアクセス拒否の ACE が混在している場合、権限に関する問題のトラブルシューティングが複雑になることがあります。全員にアクセスを許可してから特定のアカウントのアクセスを拒否するのではなく、アクセス権を持たせようとするアカウントにのみ、アクセス権を付与します。

拡張権利を付与するには、AceType を ADS_ACETYPE_ACCESS_ALLOWED_OBJECT に設定します。これは、拡張権利やプロパティ設定を処理するときに指定される標準的な権限です。

Visual Basic
objAce.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT 
 

前述したように、この定数は、スクリプトの最初に定義します。ADSI SDK にあるサンプル コードでは、この定数がよく省略されます。これは、サンプル コードの多くが Microsoft® Visual Basic® で記述されているためです。Visual Basic などのプログラミング言語では ADSI タイプ ライブラリにアクセスするため、ADS_ACETYPE_ACCESS_ALLOWED_OBJECT の値は認識されています。VBScript などのスクリプト言語ではタイプ ライブラリにアクセスしないため、VBScript に対して明示的に ADS_ACETYPE_ACCESS_ALLOWED_OBJECT の値を宣言します。

Flags   Flags プロパティは、ACE にオブジェクトの種類や継承されるオブジェクトの種類があるかどうかを指定します。オブジェクトの種類は、付与される権利を示すものです (次のセクションで説明します)。継承されるオブジェクトの種類は、ACE を継承するオブジェクトの種類 (ユーザー アカウントなど) を指します。この点については、このドキュメントの「拡張権利を OU 内の全ユーザーに付与する」で詳しく説明します。

1 つのユーザー アカウントに、拡張権利を付与するスクリプトの場合、必要であるのは、オブジェクトの種類が ACE にあると指定することだけです。前述のように、継承されるオブジェクトの種類はありません。したがって、次のようになります。

Visual Basic
objAce.Flags = ADS_FLAG_OBJECT_TYPE_PRESENT
 

ObjectType   拡張権利を付与する場合、ObjectType は、付与する権利を示す GUID に設定する必要があります。表 1 に示したように、ユーザーのパスワードを示すオブジェクトの GUID は、{00299570-246d-11d0-a768-00aa006e0529} です。したがって、この GUID を ObjectType に割り当てます。

Visual Basic
objAce.ObjectType = "{00299570-246d-11d0-a768-00aa006e0529}"
 

AccessMask   AccessMask は、ACE で許可 (または拒否) されているすべてのアクセス特権を含む、ビットフラグ プロパティです。前述のように、Active Directory オブジェクトでは、ファイルやフォルダのセキュリティ記述子を処理するときに表示されるのと同じ権限 (読み取り、書き込み、フル コントロール) のうち、少なくとも一部をサポートします。ただし、拡張権利を処理する場合、ADS_RIGHT_DS_CONTROL_ACCESS 権利を AccessMask に割り当てる必要があります。したがって、拡張権利スクリプトを記述する場合、次のようなコード行を必ず含めます。

Visual Basic
objAce.AccessMask = ADS_RIGHT_DS_CONTROL_ACCESS
 

すべての ACE プロパティを構成してから、AddAce メソッドを呼び出して、新しい ACE を DACL に追加します。

Visual Basic
objDACL.AddAce objAce
 

このコードでは、メモリに存在する DACL の "コピー" に ACE を追加しているだけである、という点に注意してください。ADSI スクリプトでは、作業中のオブジェクトのコピーがメモリ (ローカル キャッシュ) に作成され、そのコピーに対して処理を実行します。実際のオブジェクトは、SetInfo メソッドを呼び出してオブジェクトを変更するまで、変わりません。ここでスクリプトを終了すると、新しい ACE は Active Directory の Rob Young ユーザー アカウントに追加されません。これは、まだ SetInfo を呼び出していないためです。新しいセキュリティ記述子を Active Directory オブジェクトに実際に適用するために、セクション 4 に進みます。

ページのトップへ

セクション 4: セキュリティ記述子に新しい ACE を書き込む

ACE を作成してセキュリティ記述子の複製 (ローカル コンピュータのメモリにのみ存在します) に追加すると、残りの作業は、修正したセキュリティ記述子を実際の Rob Young ユーザー アカウント オブジェクトに書き込むことだけです。それを実行するのが次のコード行です。

Visual Basic
objSD.DiscretionaryAcl = objDACL
objSDUtil.Put "ntSecurityDescriptor", Array(objSD)
objSDUtil.SetInfo
 

お気付きのように、objSD は、Rob Young ユーザー アカウントのセキュリティ記述子に対するオブジェクト参照です。コードの 1 行目で、作成したばかりの新しい (修正した) DACL に DiscretionaryAcl プロパティを設定します。これで、完全かつ十分に機能する "メモリ" のセキュリティ記述子が得られます (これまでの段階では、ローカル キャッシュから取得して、実際のセキュリティ記述子の "コピー" で作業していました)。ここまできたら、残っている作業は、変更内容を実際のセキュリティ記述子に書き込むことだけです (Active Directory に格納します)。これは、Put メソッドで実行します。Put を呼び出してから SetInfo メソッドを呼び出すと、ユーザー アカウントの変更が保存されます。SetInfo を呼び出した瞬間に、Ken Myer には Rob Young のパスワードをリセットする権利が付与されます。とても簡単で、すぐにできます。

ページのトップへ

拡張権利を OU 内の全ユーザーに付与する

1 名のユーザー (Ken Myer など) に、さらに 1 つか 2 つのユーザー アカウントのパスワードをリセットする権利を付与する場合があります。さらに、大規模なユーザー グループ (特定の OU 内にいるすべてのユーザーなど) のパスワードをリセットする権利を Ken に付与する場合も考えられます。このようにしておくと、その OU のユーザーが自分のパスワードを忘れた場合、Ken に新しいパスワードの発行を依頼するだけで済みます。これが、Active Directory における制御の委任についての全体的な趣旨です。つまり、特定のユーザーに対し、特定の OU 内で特定のタスクを実行する許可を付与する、ということです。

Active Directory では、OU 内の全ユーザーに適用する、拡張権利の付与は簡単です。OU に含まれるユーザーごとのセキュリティ記述子を変更するのではなく、OU のセキュリティ記述子を変更して、ACE を構成します。この結果、セキュリティ設定は OU 内の全ユーザー アカウントに伝播します。ここで、この処理を実行するスクリプトを示し、その動作について説明します。

Visual Basic
Const ADS_ACETYPE_ACCESS_ALLOWED_OBJECT = &H5
Const ADS_FLAG_OBJECT_TYPE_PRESENT = &H1
Const ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT = &H2
Const ADS_RIGHT_DS_CONTROL_ACCESS = &H100
Const ADS_ACEFLAG_INHERIT_ACE = &H2

Set objSdUtil = GetObject("LDAP://OU=Finance, DC=fabrikam, DC=Com")
Set objSD = objSdUtil.Get("ntSecurityDescriptor")
Set objDACL = objSD.DiscretionaryACL

Set objAce = CreateObject("AccessControlEntry")
objAce.Trustee = "FABRIKAM\kmyer"
objAce.AceFlags = ADS_ACEFLAG_INHERIT_ACE
objAce.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT
objAce.Flags = ADS_FLAG_OBJECT_TYPE_PRESENT OR ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT
objAce.ObjectType = "{00299570-246d-11d0-a768-00aa006e0529}"                     
objACE.InheritedObjectType = "{BF967ABA-0DE6-11D0-A285-00AA003049E2}"
objAce.AccessMask = ADS_RIGHT_DS_CONTROL_ACCESS
objDACL.AddAce objAce

objSD.DiscretionaryAcl = objDACL

objSDUtil.Put "ntSecurityDescriptor", Array(objSD)
objSDUtil.SetInfo
 

このスクリプトに見慣れてきたら、Active Directory のセキュリティ スクリプトの読み取りと解釈という、高度な技術を備えているといえます。実際のところ、このスクリプトと最初に紹介したスクリプト (Rob Young ユーザー アカウントのみにパスワードをリセットする権利を付与するスクリプト) で異なるのは、4 つの点だけです。

まず、今回のスクリプトでは、Rob Young ユーザー アカウントに明示的にバインドしていません。その代わり、Finance OU にバインドします。

Visual Basic
Set objSdUtil = GetObject("LDAP://OU=Finance, DC=fabrikam, DC=Com")
 

第 2 に、最初のスクリプトでは、ACE を継承する子オブジェクトが不要であると説明しました。これは、1 つのユーザー アカウントしかない場合、ACE を継承できる子オブジェクトが "存在しない" ためです。今回の改版スクリプトには、これは当てはまりません。今回は、新しい ACE を OU に割り当て、全種類の子オブジェクト (特に、すべてのユーザー アカウント) でその ACE を継承するようにします。ACE が適切な子オブジェクトに渡されるようにするには、AceFlags プロパティを設定する必要があります。

Visual Basic
objAce.AceFlags = ADS_ACEFLAG_INHERIT_ACE
 

説明したとおり、ユーザー アカウントだけがこの ACE を継承するようにします。そのため、InheritedObjectType プロパティをユーザー アカウント オブジェクトの GUID に設定する必要があります。これが、Active Directory のユーザー アカウント オブジェクトの GUID である {BF967ABA-0DE6-11D0-A285-00AA003049E2} を使用して実行した内容です (GUID が不明な場合は、MSDN に掲載されている「Active Directory Schema Reference」(英語) で User オブジェクトに関する説明を検索してください)。

Visual Basic
objACE.InheritedObjectType = "{BF967ABA-0DE6-11D0-A285-00AA003049E2}"
 

最後に、新たな定数 (ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT) を定義して使用する必要があります。この ACE に、オブジェクトの種類と継承されるオブジェクトの種類の両方があるためです。では、まずこの定数を定義します。

Visual Basic
Const ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT = &H2
 

次に、Flags プロパティを変更して、ACE にオブジェクトと継承されるオブジェクトの両方があることを示します。以下のコードで、OR という論理演算子を使用していることに注意してください。ここで、OR は、単語 "and (と)" のような動作をする言ってよいでしょう。単に、オブジェクト "と" 継承されるオブジェクトの両方があることを示します。つまり、次のようにします。

Visual Basic
objAce.Flags = ADS_FLAG_OBJECT_TYPE_PRESENT OR ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT
 

おわかりのように、拡張権利を OU 全体に付与する方法は、拡張権利を 1 ユーザー アカウントに付与する場合とそれほど違いはありません。繰り返しになりますが、コードの多くは定型的であるため、拡張権利を OU 全体を対象に付与する場合に、いつでも利用できます。

ページのトップへ

次回の内容

"なかなか難しかったけれど、少なくとも、スクリプトを使用して Active Directory のセキュリティを管理する方法について必要な知識を習得した" と思われたでしょうか。拡張権利は、Active Directory の制御の委任の中でも重要な部分です。ここでは、Trustee、AccessMask、AceFlags など、多数の概念を紹介しました。これらの概念は、他の Active Directory セキュリティ スクリプトでも役立ちます。これですべてと言ってもいいほどですが、まだ進む道は残っています。来月は、プロパティ設定を取り上げます。プロパティ設定を使用して、Active Directory オブジェクトの特定の情報 (電子メール情報、ユーザー ログオン情報、一般的なユーザー アカウント情報) を変更する権利をユーザーに付与する方法について説明します。


ページのトップへ