私は AD ユーザー管理アプリケーションに取り組んでいます。C#、ユーザープリンシパル。そのため、AD シーマにいくつかの属性を追加する必要があります。そのうちの 1 つは BirthDate です。
AD サーバーは 2012 R2 ドメイン コントローラーです。私はマニュアルに従っています:
- mmc を開きます。
- 「Active Directory Shema」を mmc に追加します。
- このステップで、新しい属性を追加する必要がありますが、できません。アクティブではありません。スキーマに「属性を追加」などのメニュー項目がありますが、「有効」の状態ではありません。
- 私のアカウントには「Domain Admin」と「Shema Admin」の権限があります。
- 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" が発生し、"指定された値または属性のディレクトリ サービスが存在しません" というメッセージが表示されます。