Golang 查询域用户组列表 - 代码示例
要查询域中的用户组列表,您可以使用 Golang 的 ldap 包。以下是一个示例代码,它连接到域控制器并列出所有用户组:
package main
import (
"fmt"
"gopkg.in/ldap.v3"
"log"
)
func main() {
// 设置 LDAP 连接
l, err := ldap.Dial("tcp", "your.domain.controller:389")
if err != nil {
log.Fatalf("Failed to connect to LDAP server: %s", err.Error())
}
defer l.Close()
// 使用服务账户绑定到 LDAP
err = l.Bind("service-account@your.domain", "password")
if err != nil {
log.Fatalf("Failed to bind to LDAP server: %s", err.Error())
}
// 搜索所有组
searchRequest := ldap.NewSearchRequest(
"dc=your,dc=domain",
ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
"(objectClass=group)",
[]string{"cn"},
nil,
)
sr, err := l.Search(searchRequest)
if err != nil {
log.Fatalf("Failed to search for groups: %s", err.Error())
}
// 打印用户组列表
fmt.Println("Groups:")
for _, entry := range sr.Entries {
fmt.Printf("- %s\n", entry.GetAttributeValue("cn"))
}
}
请注意,您需要将 'your.domain.controller' 和 'your.domain' 替换为您的域控制器的名称和域名。您还需要使用服务帐户凭据替换 'service-account@your.domain' 和 'password'。
原文地址: https://www.cveoy.top/t/topic/koB7 著作权归作者所有。请勿转载和采集!