如何在 VB.NET 中克隆 UserPrincipal 对象

How to clone a UserPrincipal object in VB.NET

我正在尝试从 VB.NET 应用程序在 Active Directory 中创建一个新用户。大多数字段将与已经存在的“模板”用户相同,除了姓名、姓氏、电子邮件、SamAccountName 等。

所以我想复制或克隆此模板用户,为少数字段分配 new/different 值,然后将此新用户保存在 Active Directory 中。我想避免必须手动将不知道有多少属性从我的模板分配给新用户,并且可能会忘记一些东西..

有没有办法做到这一点?我发现了一些关于使用 DirectoryEntry.CopyTo() 的信息,但我只是得到一个“未实现”错误,而且我怀疑这是正确的方向(不确定如何将此 class 与 UserPrincipal 一起使用对象)

我是否应该使用不同于 System.DirectoryServices.AccountManagement.UserPrincipal 的 class 来将我的新用户保存在 AD 中?是我的做法不对吗?

任何帮助将不胜感激:)

如果您查看 source code for DirectoryEntry.CopyTo,它会调用:

newParent.ContainerObject.CopyHere(Path, newName)

ContainerObject is of the type IADsContainer. If you look at the documentation for IADsContainer.CopyHere,它说(在备注下):

The providers supplied with ADSI return the E_NOTIMPL error message.

ADSI 是“Active Directory 服务接口”。所以简短的回答是它不适用于 AD 对象。

没有办法如你所愿。您将必须手动分配要复制的每个属性。