ユーザーの作成

Active Directory Domain Servicesでユーザーを作成するには、ユーザーを配置するドメインのドメイン コンテナーにユーザー オブジェクトを作成します。 ユーザーは、ドメインのルート、組織部門内、またはコンテナ内に作成できます。

ユーザー オブジェクトを作成するときは、次の表に示す属性も設定して、Active Directory ドメイン サービスと Windows セキュリティ システムによって認識される正当なユーザーとしてオブジェクトを設定する必要があります。

属性 説明
cn ディレクトリ内のユーザー オブジェクトの名前を指定します。 これは、オブジェクトの相対識別名 (RDN) になります。
sAMAccountName 以前のバージョンの Windows のクライアントとサーバーをサポートするために使用される名前の文字列を指定します。 前のバージョンの Windows のクライアントをサポートするには、sAMAccountName を 20 文字未満にする必要があります。
sAMAccountName は、ドメイン内のすべてのセキュリティ プリンシパル オブジェクト間で一意である必要があります。 ドメインに対してクエリを実行して、sAMAccountName がドメイン内で一意であることを確認する必要があります。
sAMAccountName は省略可能な属性です。 何も指定されていない場合、サーバーはランダムな sAMAccountName 値を作成します。

他の属性を設定することもできます。 次のユーザー属性は、作成時に明示的に設定しない場合、デフォルト値で設定されます。

属性 説明
アカウント有効期限 アカウントの有効期限を指定します。 デフォルトは TIMEQ_FOREVER, これは、アカウントに有効期限がないことを示す。
セキュリティ記述子は、特定のルールに基づいて作成される。 詳しくは 新しいディレクトリオブジェクトへのセキュリティ記述子の設定方法.
objectCategory ユーザー・カテゴリーを指定します。 デフォルトは "Person "である。
name ユーザー名を指定します。 デフォルトはcn.
pwdLastSet ユーザーが最後にパスワードを設定した日時を指定します。 デフォルトはゼロで、これはユーザーが次回ログオン時にパスワードを変更しなければならないことを示す。
userAccountControl ユーザーのログオン機能とアカウント機能を決定する値が含まれます。
デフォルトでは、次のフラグが設定されています:
  • UF_ACCOUNTDISABLE - アカウントは無効です。
  • UF_PASSWD_NOTREQD - パスワードは必要ありません。
  • - パスワードは必要ありません。 UF_NORMAL_ACCOUNT - 一般的なユーザーを表す既定のアカウントの種類。
memberOf ユーザーが直接メンバーであるグループを指定します。 デフォルトは"ドメインユーザー"です。

ユーザーは、目的のコンテナーにバインドし、次のいずれかの方法を使用して作成されます。 cn 属性と sAMAccountName 属性は、ユーザがサーバにコミットされる前に設定する必要があります。

メソッド 説明
IADsContainer.Create cn 属性は、bstrRelativeName パラメーターから取得されます。 新しいユーザーは、 IADs.SetInfo を呼び出してコミットする必要があり、そうでない場合はオブジェクトは作成されません。 詳細については、ユーザーを作成するためのコード例を参照してください。
IDirectoryObject::CreateDSObject cn 属性は、pszRDNName パラメーターから取得されます。 新しいユーザーはCreateDSObject が呼び出されたときにコミットされます。 詳細については、ユーザーを作成するためのコード例を参照してください。
DirectoryEntries.Add cn 属性は name パラメーターから取得されます。 新しいユーザー オブジェクトは、DirectoryEntry.CommitChanges 呼び出してコミットする必要があり、コミットしないと、オブジェクトは作成されません。 詳細については、ディレクトリ オブジェクトの追加を参照してください。

cn sAMAccountName 以外の属性を変更する前に、新しいユーザをサーバにコミットする必要があります。 これは、ユーザーがコミットされるまで、ユーザー アカウントが実際には存在しないためです。 サーバー上に存在しないオブジェクトの属性を取得または変更すると、エラーが発生します。 れには、 IADsUser.SetPassword メソッドの呼び出しが含まれます。 たとえば、IADsContainer.Create を使用してユーザーを作成する場合は、次のシーケンスに従います。

  1. IADsContainer.Create を呼び出して、指定した cn を持つユーザーをローカル キャッシュに作成します。
  2. IADs.Put メソッドを使用してsAMAccountName 属性を目的の値に設定します。
  3. 次に、userAccountControl などの他の属性を変更します。 この制限は、 IADsUser.AccountDisabled などの ADSI プロパティや、 IADsUser.SetPassword などのメソッドにも適用されます。
  4. IADs.SetInfo を呼び出して、新しいユーザーをサーバーにコミットします。

新しいユーザー アカウントが作成されると、既定では無効になります。 アカウントは、手動またはプログラムで有効にする必要があります。 ユーザー アカウントをプログラムで有効にするには、userAccountControl 属性から ADS_UF_ACCOUNTDISABLE フラグを削除します。

新しいユーザー アカウントが作成されると、そのアカウントの userAccountControl 属性に、アカウントにパスワードが不要であることを示す UF_PASSWD_NOTREQD フラグが自動的に設定されますアカウントが作成されたドメインのセキュリティ ポリシーで、すべてのユーザー アカウントのパスワードが必要な場合は、アカウントの userAccountControl 属性から UF_PASSWD_NOTREQD フラグを削除する必要があります。

ユーザーを作成するためのコード例