カテゴリー別アーカイブ: ActiveDirectory

GPOのカスタムテンプレートの利用とadmファイルのadmx化

  • テンプレートファイルを作成する(ファイル名.admで保存する)
    • 例はお気に入りのフォルダを変更するためのポリシーです。

CLASS USER
CATEGORY !!categoryname
KEYNAME “SoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell Folders”
POLICY !!policyname
PART !!text EDITTEXT REQUIRED EXPANDABLETEXT
DEFAULT “%USERPROFILE%Favorites”
VALUENAME “Favorites”
END PART
END POLICY
END CATEGORY
[strings]
categoryname=”お気に入り”
policyname=”お気に入りの保管場所”
text=”お気に入りの場所”

  • 次の手順でADに反映する
  1. 作成した.admファイルをADMXMigraterでadmx・adml化する
  2. admxは%logonserver%SYSVOL%userdnsdomain%policiesPolicyDefinitionsフォルダ、admlは同ja-JPフォルダにコピーする
  3. PDCエミュレータにログオンしているVistaでGPMCを開き、新たにポリシーを作成する
  4. gpmc.mmcの表示-フィルタ-「完全に管理されているポリシーのみ表示する」のチェックを外さないと、カスタムポリシーテンプレートを表示することができないので注意。

委任されたアクセス許可を利用できず継承が自動的に無効になる

委任されたアクセス許可を利用できず継承が自動的に無効になる

ユーザさんから、ドメインユーザアカウントのプロパティ、「ユーザはパスワードを変更できない」という項目を有効にしても、一定時間経つと無効になっている、という障害報告があり調査したところ、上記の内容がヒントとなりました。

障害が発生していたユーザが所属しているグローバルグループが、保護の対象である特権グループ「Account Operators」のメンバとなっていました。

このAccount Operatorsの「アクセス許可(ACL)」にはAccount Operatorsのアクセス許可は未設定(当然ですが。)、Domain Adminsにはフルコントロールなし、というものです。

ですので、このグループに所属するグローバルグループは同様のACLになります(引継ぐことになります)。

で、それがユーザアカウントのプロパティに対する変更にどういった影響を与えるのか、というとそれがよく分かりません。

このプロパティはActiveDirectoryの上位にいるLDAP管理サーバから流し込まれているのですが、この流し込みに使われるアカウントがAccountOperatorsの権限で動作している(=アクセス許可がない) ために設定が反映されないのかな…という推測で止まっています。

NT4ドメインからActiveDirectory(WindowsServer2003R2)への移行

移行用PCを用意するのが最も確実だと思います。

手順については以下の通り。

  1. 移行用PC(MIG)をNT4のBDCとしてインストール。
  2. MIGをPDCに昇格。
  3. MIGをWindowsServer2003R2にアップグレード。
  4. 新SVをDCに昇格(dcpromo)。
  5. 新SVにFSMOを移行。

移行用PCはNT4が動く少し古めのマシンを用意するのがポイントです。

あまり古いと2003がインストールできないので、少し古いというのが重要です。

もちろんこういった実作業の前に、ドメイン設計(サイト構成、DCの台数、DNS構成等)をよく検討しておく必要があります。

ADへのログオン・ログオフイベントを追跡する(Eventcreate+LogParser編)

WindowsServer2003とWindowsXP以降の環境で利用できます。

概要は次の通り。

  1. クライアントPCからEventcreateコマンドで、DCのイベントログにログオン・ログオフの度にイベントを書き込む。
  2. DCのイベントログをLogParserから検索・出力する。

当初は、WSHからDCのイベントログへの書き込もうとしましたが、そうすると、イベントログのSID(ユーザ)がN/Aとなり、どのユーザからのログオンなのか判別がつかなくなりました。もちろんMessage領域に%USERNAME%を書き込むことで、文字列を取得することは出来ますが、イベントログのSIDに納めるほうが、より直感的なのでEventcreateを利用することにしました。

・ログオン

eventcreate /s %LOGONSERVER% /u %username% /l application /t SUCCESS /ID 1 /d “%LOGONSERVER:~2%”

・ログオフ

eventcreate /s %LOGONSERVER% /u %username% /l application /t SUCCESS /ID 2 /d “%LOGONSERVER:~2%”

今回は ログオン先を取得したかったので、Message領域に%LOGONSERVER%を格納しています。

Eventecreateコマンドでは書き込み先のイベントログ種別を選択することができますが、今回はアプリケーションログに書き込んでいます。

なお、WindowsServer2003のイベントログに対してリモートユーザがログの書き込みを行う際は下記リンクの処理が必要になります。

http://support.microsoft.com/kb/323076/ja

私はDCのレジストリを修正することで対応しました。

書き込み先がアプリケーションログなので変更するレジストリは次のものになります。

HKEY_LOCAL_MACHINESystemCurrentControlSetServices

EventlogApplicationCustomSD

このキーの値に、(A;;0x3;;;AU)を追記することで、AuhtenticatedUsersからの書き込みが可能になります。

また、ここでは出力先をCSVファイルに指定していますが、LogParserではデータベースを出力先とすることが可能です。今回は出力したCSVファイルをbcpコマンドでDBに取り込むことにしました。

あとはログオンスクリプト、ログオフスクリプトの設定、LogParserのスクリプトのスケジュール設定を行えば、ログオン・ログオフの履歴を取得することができます。

Windows Server 2003 R2用にスキーマを拡張する

Windows 2000 Serverで構築されているActiveDirectoryに、Windows Server 2003 R2をドメインコントローラとして導入する場合は、R2のDisc2に入っているadprepを使用します。

その後は通常のServer 2003でのスキーマ拡張と同じです。

拡張後はDC間の複製が完了してから昇格させたいWindows Server 2003 R2機でdcpromoを実行します。