UserAccountControl フラグを使用してユーザー アカウントのプロパティを操作する

この記事では、UserAccountControl 属性を使用してユーザー アカウントのプロパティを操作する方法について説明します。

適用対象: Windows Server 2012 R2、Windows Server 2016、Windows Server 2019、Windows Server 2022
元の KB 番号: 305144

概要

ユーザー アカウントのプロパティを開いて [アカウント] タブをクリックし、[アカウント オプション] ダイアログ ボックスのチェック ボックスをオンまたはオフにすると、UserAccountControl 属性に数値が割り当てられます。 属性に割り当てられた値は、どのオプションが有効になっているかを Windows に伝えます。

ユーザー アカウントを表示するには、[スタート][プログラム][管理ツール][Active Directory のユーザーとコンピューター] の順にクリックします。

プロパティ フラグの一覧

これらの属性は、Ldp.exe ツールまたは Adsiedit.msc スナップインを使用して表示および編集できます。

次の表に、割り当て可能なフラグを示します。 これらの値を設定またはリセットできるのはディレクトリ サービスのみであるため、ユーザー オブジェクトまたはコンピューター オブジェクトの値の中には設定できないものもあります。 Ldp.exe は、16 進数で値を表示します。 Adsiedit.msc は、10 進数で値を表示します。 フラグは累積的です。 ユーザー アカウントを無効にするには、UserAccountControl 属性を 0x0202 (0x002 + 0x0200) に設定します。 10 進数では、514 (2 + 512) です。

注:

Ldp.exeと Adsiedit.msc のどちらでも、Active Directory を直接編集できます。 これらのツールを使用して Active Directory を編集するのは、経験豊富な管理者に限ってください。 どちらのツールも、オリジナルの Windows インストール メディアからサポート ツールをインストールすると使用できるようになります。

プロパティ フラグ 16 進数の値 10 進数の値
SCRIPT 0x0001 1
ACCOUNTDISABLE 0x0002 2
HOMEDIR_REQUIRED 0x0008 8
LOCKOUT 0x0010 16
PASSWD_NOTREQD 0x0020 32
PASSWD_CANT_CHANGE

UserAccountControl 属性を直接変更して、このアクセス許可を割り当てることはできません。 プログラムでアクセス許可を設定する方法については、「プロパティ フラグの説明」セクションを参照してください。
0x0040 64
ENCRYPTED_TEXT_PWD_ALLOWED 0x0080 128
TEMP_DUPLICATE_ACCOUNT 0x0100 256
NORMAL_ACCOUNT 0x0200 512
INTERDOMAIN_TRUST_ACCOUNT 0x0800 2048
WORKSTATION_TRUST_ACCOUNT 0x1000 4096
SERVER_TRUST_ACCOUNT 0x2000 8192
DONT_EXPIRE_PASSWORD 0x10000 65536
MNS_LOGON_ACCOUNT 0x20000 131072
SMARTCARD_REQUIRED 0x40000 262144
TRUSTED_FOR_DELEGATION 0x80000 524288
NOT_DELEGATED 0x100000 1048576
USE_DES_KEY_ONLY 0x200000 2097152
DONT_REQ_PREAUTH 0x400000 4194304
PASSWORD_EXPIRED 0x800000 8388608
TRUSTED_TO_AUTH_FOR_DELEGATION 0x1000000 16777216
PARTIAL_SECRETS_ACCOUNT 0x04000000 67108864

注:

Windows Server 2003 ベースのドメインでは、LOCK_OUT と PASSWORD_EXPIRED が ms-DS-User-Account-Control-Computed という新しい属性に置き換わりました。 この新しい属性の詳細については、「ms-DS-User-Account-Control-Computed 属性」を参照してください。

プロパティ フラグの説明

  • SCRIPT - ログオン スクリプトが実行されます。

  • ACCOUNTDISABLE - ユーザー アカウントが無効です。

  • HOMEDIR_REQUIRED - ホーム フォルダーが必要です。

  • PASSWD_NOTREQD - パスワードは必要ありません。

  • PASSWD_CANT_CHANGE - ユーザーはパスワードを変更できません。 これは、ユーザーのオブジェクトに対するアクセス許可です。 このアクセス許可をプログラムで設定する方法については、「『ユーザーはパスワードを変更できない』の変更 (LDAP プロバイダー)」を参照してください。

  • ENCRYPTED_TEXT_PASSWORD_ALLOWED - ユーザーは暗号化されたパスワードを送信できます。

  • TEMP_DUPLICATE_ACCOUNT - プライマリ アカウントが別のドメインにあるユーザーのアカウントです。 このアカウントは、このドメインへのアクセス権をユーザーに付与しますが、このドメインを信頼するドメインへのアクセス権は付与しません。 ローカル ユーザー アカウントとも呼ばれます。

  • NORMAL_ACCOUNT - 一般的なユーザーを表す、デフォルトのアカウント タイプです。

  • INTERDOMAIN_TRUST_ACCOUNT - 他のドメインを信頼するシステム ドメインのアカウントを信頼することを許可します。

  • WORKSTATION_TRUST_ACCOUNT - Microsoft Windows NT 4.0 ワークステーション、Microsoft Windows NT 4.0 Server、Microsoft Windows 2000 Professional、または Windows 2000 Server を実行しているコンピューターのコンピューター アカウントであり、このドメインのメンバーです。

  • SERVER_TRUST_ACCOUNT - このドメインのメンバーであるドメイン コントローラーのコンピューター アカウントです。

  • DONT_EXPIRE_PASSWD - アカウントで期限切れになることがないパスワードを表します。

  • MNS_LOGON_ACCOUNT - MNS ログオン アカウントです。

  • SMARTCARD_REQUIRED - このフラグを設定すると、ユーザーはスマート カードを使用してログオンするように強制されます。

  • TRUSTED_FOR_DELEGATION - このフラグを設定すると、サービスを実行するサービス アカウント (ユーザー アカウントまたはコンピューター アカウント) が Kerberos 委任に対して信頼されます。 このようなサービスは、サービスを要求するクライアントを擬装できます。 Kerberos 委任のサービスを有効にするには、サービス アカウントの userAccountControl プロパティにこのフラグを設定する必要があります。

  • NOT_DELEGATED - このフラグを設定すると、サービス アカウントが Kerberos 委任に対して信頼済みとして設定されている場合でも、ユーザーのセキュリティ コンテキストはそのサービスに委任されません。

  • USE_DES_KEY_ONLY - (Windows 2000 または Windows Server 2003) 暗号化の種類としてデータ暗号化標準 (DES) のみを鍵に使用するようにこのプリンシパルを制限します。

  • DONT_REQUIRE_PREAUTH - (Windows 2000 または Windows Server 2003) このアカウントは、ログオンに Kerberos 事前認証を必要としません。

  • PASSWORD_EXPIRED - (Windows 2000 または Windows Server 2003) ユーザーのパスワードの有効期限が切れています。

  • TRUSTED_TO_AUTH_FOR_DELEGATION - (Windows 2000 または Windows Server 2003) アカウントは委任が有効になっています。 セキュリティに配慮した設定です。 このオプションが有効になっているアカウントは、厳密に制御する必要があります。 この設定により、このアカウントで実行されるサービスは、クライアントの ID を想定し、ネットワーク上の他のリモート サーバーに対してそのユーザーとして認証されるようになります。

  • PARTIAL_SECRETS_ACCOUNT - (Windows Server 2008 または Windows Server 2008 R2) アカウントは読み取り専用ドメイン コントローラー (RODC) です。 セキュリティに配慮した設定です。 RODC からこの設定を削除すると、そのサーバーのセキュリティが損なわれます。

UserAccountControl の値

特定のオブジェクトに対する既定の UserAccountControl 値を次に示します。

  • 一般的なユーザー: 0x200 (512)
  • ドメイン コントローラー: 0x82000 (532480)
  • ワークステーションまたはサーバー: 0x1000 (4096)
  • 信頼: 0x820 (2080)

注:

信頼オブジェクトでは、ユーザーオブジェクトとコンピューター オブジェクトと同じ方法で従来のパスワード ポリシーとパスワード属性が使用されないため、Windows 信頼アカウントは UserAccountControl 属性値PASSWD_NOTREQDパスワードを持つことから除外されます。

信頼シークレットは、ドメイン間信頼アカウントの特殊な属性によって表され、信頼の方向を示します。 受信信頼シークレットは、信頼の "信頼" 側の trustAuthIncoming 属性に格納されます。 送信信頼シークレットは、信頼の "信頼" の末尾にある trustAuthOutgoing 属性に格納されます。

  • 双方向の信頼の場合、信頼の両側のINTERDOMAIN_TRUST_ACCOUNT オブジェクトは両方とも設定されます。
  • 信頼シークレットは、信頼ドメインのプライマリ ドメイン コントローラー (PDC) エミュレーターフレキシブル シングル マスター操作 (FSMO) ロールであるドメイン コントローラーによって管理されます。
  • このため、PASSWD_NOTREQD UserAccountControl 属性は既定でINTERDOMAIN_TRUST_ACCOUNTアカウントに設定されます。