使用DirectoryServices.DirectoryEntry class我试图使用C#.NET从活动目录中的组中删除用户条目
我遇到过两种方式,
第一种方式:
DirectoryEntry directoryEntry = new DirectoryEntry(myGroupPath);
directoryEntry.Properties["member"].Remove(userDistinguishedName);
directoryEntry.CommitChanges();
第二种方式
DirectoryEntry directoryEntry = new DirectoryEntry(myGroupPath);
directoryEntry.Invoke("Remove", userDistinguishedName);
根据msdn Invoke documentation,它表示Invoke在本机Active Directory域服务对象上调用方法。 它与第一种方式有什么不同?
答案 0 :(得分:0)
我做了我的研究,这就是我所达到的目标。
让我们从 第二种方式开始
DirectoryEntry.Invoke(methodName,ADsPath)
正如msdn Invoke documentation提供的那样,Invoke在本机Active Directory域服务对象上调用方法。在我们的案例中,我们重新调用组成员身份接口 IADsGroup
基本上,IADsGroup:
管理目录服务中的组成员资格数据。它使您能够获取成员对象,测试给定对象是否属于该组,以及向该组或组中添加或删除对象。
是一个实现IAD和接口的接口。 IDispatch接口。
a)IADs:提供ADSI对象的基本维护功能。
b)IDispatch:用于启用自动化客户端(如Visual Basic)访问的接口。这将对象,方法和属性公开给编程工具和支持自动化的其他应用程序。
3。 它提供了管理和扩展directory schema的方法。
ADSI定义的接口可以支持您的提供商的特定属性和语法。但是,提供程序可以选择扩展ADSI接口定义并支持其他属性。
因此,如果您在AD上使用众所周知的常见操作,ADSI界面可以省去管理property cache和忘记commit changes这可能是个问题的麻烦
<强> DirectoryEntry.Properties [“构件”]。删除
基本上拨打ADSI interface to retrieve the value of the property。 IADsGroup对你来说完全一样。