我有一个页面可以使用 VB.NET 在我们的活动目录中创建新用户我正在使用以下代码
Dim rootEntry As New DirectoryEntry
With rootEntry
.Path = "LDAP://" & strServer & "/" & strLDAP
.AuthenticationType = AuthenticationTypes.Secure
.Username = strServerUsername
.Password = strServerPassword
End With
Dim newUser As DirectoryEntry = rootEntry.Children.Add("CN=" & strCN, "user")
With newUser
.CommitChanges()
.Properties("userPrincipalName").Value = TextPN.Text
.Properties("sAMAccountName").Value = TextAlias.Text
.Properties("givenname").Value = TextGivenname.Text
.Properties("sn").Value = TextSurname.Text
……
.CommitChanges()
.Invoke("setPassword", New Object() {strDefaultPassword})
.CommitChanges()
.Properties("userAccountControl").Value = &H0001
.CommitChanges()
End With
该代码过去运行良好。现在我们已经将我们的网络服务器迁移到 Windows Server 2008 R2 和 IIS 7.5,突然代码不再工作了。(.net framework 是 2.0,不能更改) 用户仍然在我们的活动目录中创建,但帐户被自动禁用,并且没有设置密码。
调查此问题表明在该行引发了异常
.Invoke("setPassword", New Object() {strDefaultPassword})
例外
The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)
用于连接 AD 的用户帐户仍然相同,并且具有域管理员权限。由于代码没有任何变化,我认为这肯定有另一个原因不再起作用?防火墙设置,IIS 配置,..?
有任何想法吗??
我知道这里有类似的情况尝试创建一个新的 Active Directory 用户, Invoke("SetPassword",pwd) 抛出 "The RPC server is available" ,但这对我没有帮助。