You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET查询Active Directory用户时如何指定管理员账号密码

Active Directory 查询添加管理员凭据的实现方法

你可以直接使用PrincipalContext类的带身份凭据的重载构造方法,传入管理员的用户名和密码即可,不用修改其他查询逻辑。

两种场景的修改方式

  • 不指定OU搜索容器的场景
    原构造代码:
Using context = New PrincipalContext(ContextType.Domain, domain)

修改为带凭据的版本:

' adminUsername 支持 域\用户名 或 用户名@域名 两种格式
Using context = New PrincipalContext(ContextType.Domain, domain, adminUsername, adminPassword)
  • 指定OU搜索容器的场景
    原构造代码:
Using context = New PrincipalContext(ContextType.Domain, domain, OU)

修改为带凭据的版本:

Using context = New PrincipalContext(ContextType.Domain, domain, OU, adminUsername, adminPassword)

完整修改后的代码示例

Public Sub UserList(domain As String, adminUsername As String, adminPassword As String)
    Try
        ' 传入管理员凭据初始化上下文
        Using context = New PrincipalContext(ContextType.Domain, domain, adminUsername, adminPassword)
            Dim userPrin As New UserPrincipal(context) With {.Enabled = True}
            Using searcher = New PrincipalSearcher(New UserPrincipal(context))
                searcher.QueryFilter = userPrin
                For Each result In searcher.FindAll()
                    Dim de As DirectoryEntry = TryCast(result.GetUnderlyingObject(), DirectoryEntry)
                    Dim dn1 As String = de.Properties("cn").Value
                    DataGridView1.Rows.Add(dn1)
                Next result
            End Using
        End Using
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub

注意事项

  • 不要在代码里硬编码管理员账号密码,生产环境建议使用加密配置存储,或者运行时让用户手动输入凭据,避免权限泄露。

内容的提问来源于stack exchange,提问作者Lider13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 02:27:03