如何在ADS中更改组名(sAMAccountName)?

Jan*_*mes 3 c# active-directory

我正在尝试使用c#和.NET更改组的名称.它与以下代码配合良好:

    public void selectADSObject(string LDAP)
    {
        DirectoryEntry Entry = new DirectoryEntry(ADS_PATH);
        Entry.Username = ADS_USER;
        Entry.Password = ADS_PW;
        DirectorySearcher Searcher = new DirectorySearcher(Entry);
        Searcher.SearchScope = System.DirectoryServices.SearchScope.Subtree;
        Searcher.Filter = LDAP;
        AdObj = Searcher.FindOne();
        AdObj.GetDirectoryEntry().Rename("cn=newName");
    }
Run Code Online (Sandbox Code Playgroud)

只有"windows-pre 2000"这个名字没有重命名,我也需要重命名.在这个页面上,我发现这sAMAccountName就是我所追求的.但是,当我添加以下行时,它也不会更改pre-windows 2000名称:

AdObj.GetDirectoryEntry().Properties["sAMAccountName"].Value = "newName";
AdObj.GetDirectoryEntry().CommitChanges();
Run Code Online (Sandbox Code Playgroud)

如何更改sAMAccountName/pre-windows 2000名称?

Pet*_*esh 5

每次调用时:

AdObj.GetDirectoryEntry()
Run Code Online (Sandbox Code Playgroud)

它实际上创建了一个新对象!每一个变化都会在下一行丢失.请使用以下内容:

var dent = AdObj.GetDirectoryEntry()
dent.Properties["sAMAccountName"].Value = "newName";
dent.CommitChanges();
dent.rename("cn=newName");
Run Code Online (Sandbox Code Playgroud)