使用VB.NET在AD管理控制台中更改AD用户的标题

时间:2018-04-17 11:20:04

标签: vb.net properties ldap adsi displayname-attribute

我有一个工作代码,用于创建新的AD用户及其不同的属性。我唯一能做的就是:

AD管理窗口(标题)中的用户条目与CN相同。但我需要输入与DisplayName属性相同。

手动更改用户条目的名称后,我发现属性名称'改变了。 (见截图) Screenshot-1

所以我尝试使用属性' name'在我的代码中也是如此。 但是当我在第一个CommitChanges()期间使用该属性(有效地创建权利)时,它并没有设置为我想要的值。相反,它与用户的登录名(SAMAccountName)保持一致。

如果我在稍后的CommitChanges()期间尝试设置属性的值,则会抛出以下异常

  

" 00002016:SvcErr:DSID-031A12D2,问题5003(WILL_NOT_PERFORM),   数据0" &安培; vbLf

你有什么想法我可以做些什么来改变属性' name'一个AD对象?

(顺便说一句:我的代码中包含一些德语单词.Vorname =给定姓名/ Nachname =姓氏等,以防您想知道)

        Dim o As DirectoryEntry
        Dim c As DirectoryEntries
        Dim OUPath = ("LDAP://OU=" & OU & ",OU=Benutzer,DC=int,DC=xxxx,DC=xx")
        o = New DirectoryEntry(OUPath, "xxxx", "xxxx", System.DirectoryServices.AuthenticationTypes.Secure)
        c = o.Children()
        o = c.Add("CN=" & UsernameV, "user")

        o.Properties("SAMAccountName").Value = UsernameV
        o.Properties("sn").Add(NachnameV)
        o.Properties("givenName").Add(VornameV)
        o.Properties("displayName").Add("" & NachnameV & ", " & VornameV & "")
        o.Properties("name").Add("" & NachnameV & ", " & VornameV & "")
        o.Properties("userPrincipalName").Add(UsernameV & "@xxxx")
        o.CommitChanges()
        o.Invoke("setPassword", New Object() {PWV})
        o.CommitChanges()
        'newUser.Properties("userAccountControl").Add(512)
        'newUser.CommitChanges()
        o.Properties("description").Add(UsernameV)
        o.Properties("scriptPath").Add("logon.bat")
        o.Properties("homeDrive").Add("H:")
        o.Properties("homeDirectory").Add("\\datsrv-01\homes\" & UsernameV & "$")
        o.Properties("company").Add(ComboBox_so.SelectedItem.ToString)
        o.Properties("department").Add(ComboBox_abt.SelectedItem.ToString)
        o.Properties("telephoneNumber").Add(TelV)
        o.Properties("userAccountControl").Value = 65536
        o.CommitChanges()
        o.NativeObject.AccountDisabled = False
        o.CommitChanges()
        MsgBox("Erstellen erfolgreich")

0 个答案:

没有答案