0

私は AD ユーザー管理アプリケーションに取り組んでいます。C#、ユーザープリンシパル。そのため、AD シーマにいくつかの属性を追加する必要があります。そのうちの 1 つは BirthDate です。

AD サーバーは 2012 R2 ドメイン コントローラーです。私はマニュアルに従っています:

  1. mmc を開きます。
  2. 「Active Directory Shema」を mmc に追加します。
  3. このステップで、新しい属性を追加する必要がありますが、できません。アクティブではありません。スキーマに「属性を追加」などのメニュー項目がありますが、「有効」の状態ではありません。
  4. 私のアカウントには「Domain Admin」と「Shema Admin」の権限があります。
  5. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\ に値 1 の DWORD パラメーター「Schema Update Allowed」を追加し、サーバーを再起動しました。しかし、新しい属性を追加することはできません。何が間違っているのですか?

更新 1 したがって、拡張属性を使用する提案があります。それは私がした最初のことです。

[DirectoryObjectClass("user")]
[DirectoryRdnPrefix("CN")]
public class UserPrincipalEx : UserPrincipal
{
    private const string _jobTitle = "extensionAttribute1";
    [DirectoryProperty(_jobTitle)]
    public string JobTitle
    {
        get
        {
            if (ExtensionGet(_jobTitle).Length != 1)
                return null;

            return (string)ExtensionGet(_jobTitle)[0];
        }
        set
        {
            this.ExtensionSet(_jobTitle, value);
        }
    }
}

次に userPrincipal.Save(); "System.DirectoryServices.AccountManagement.PrincipalOperationException" が発生し、"指定された値または属性のディレクトリ サービスが存在しません" というメッセージが表示されます。

4

0 に答える 0