1


1

C#を使用してOUにアクセス許可を追加するにはどうすればよいですか?

次のようなOUオブジェクトを取得できます。

        DirectoryEntry de = new DirectoryEntry(
            "LDAP://domain.com",
            "DOMAIN\\Administrator",
            "Password");
        DirectoryEntry ouEntry = de.Children.Find("OU=my-users,DC=domain,DC=com");

しかし、許可を追加するためのクラスまたはライブラリを見つけることができないようです。 このOUでオブジェクトを作成および削除するための「MyGroup」権限を付与したい。 OUを選択し、[セキュリティ]タブを使用して、ADSIEditで手動でこれを実行できますが、同等のコードが見つかりません。

1 Answer


1


これを試してください

DirectoryEntry rootEntry = new DirectoryEntry("LDAP://OU=Test OU,DC=test,DC=com");
DirectorySearcher dsFindOUs = new DirectorySearcher(rootEntry);

dsFindOUs.Filter = "(objectClass=organizationalUnit)";
dsFindOUs.SearchScope = SearchScope.Subtree;
SearchResult oResults = dsFindOUs.FindOne();
DirectoryEntry myOU = oResults.GetDirectoryEntry();

System.Security.Principal.IdentityReference newOwner = new System.Security.Principal.NTAccount("YourDomain", "YourUserName").Translate(typeof(System.Security.Principal.SecurityIdentifier));
ActiveDirectoryAccessRule newRule = new ActiveDirectoryAccessRule(newOwner, ActiveDirectoryRights.GenericAll, System.Security.AccessControl.AccessControlType.Allow);
myOU.ObjectSecurity.SetAccessRule(newRule);

これがあなたのために働くかどうか私に知らせてください。