使用VBScript/WSH查询Active Directory并导出
我想使用VBScript或WSH脚本查询AD服务器以获取某些字段 这些领域使用VBScript/WSH查询Active Directory并导出,vbscript,active-directory,ldap,wsh,Vbscript,Active Directory,Ldap,Wsh,我想使用VBScript或WSH脚本查询AD服务器以获取某些字段 这些领域 DN 用户ID 邮寄 公司 显示名 并将字段导出/输出到文本文件 我怎样才能做到这一点 我来自linux背景,需要这个,因为运行脚本的计算机正在运行windows 使用linux `ldapsearch -x -h hostserver -b "cn=contacts,dc=support,dc=com" CN="name"` 您需要使用DirectoryServices。这将使您能够访问广告以及查询广告所需的AP
- DN
- 用户ID
- 邮寄
- 公司
- 显示名
`ldapsearch -x -h hostserver -b "cn=contacts,dc=support,dc=com" CN="name"`
您需要使用DirectoryServices。这将使您能够访问广告以及查询广告所需的AP。
对象可用于查询AD并返回一个。然后,您可以将这些值作为字符串读取,很容易写入文本文件。希望这是有帮助的 通常的方法是使用ADO和检索有关AD对象的信息:
Set rootDSE = GetObject("LDAP://RootDSE")
base = "<LDAP://" & rootDSE.Get("defaultNamingContext") & ">"
filter = "(&(objectClass=user)(objectCategory=Person))"
attr = "distinguishedName,userid,mail,company,displayName"
scope = "subtree"
Set conn = CreateObject("ADODB.Connection")
conn.Provider = "ADsDSOObject"
conn.Open "Active Directory Provider"
Set cmd = CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn
cmd.CommandText = base & ";" & filter & ";" & attr & ";" & scope
Set rs = cmd.Execute
Do Until rs.EOF
'do stuff with rs.Fields(fieldname).Value
rs.MoveNext
Loop
rs.Close
conn.Close
用户ID不是AD的一部分,它是sAMAccountName
Set cmd.CommandText = base & ";" & filter & ";" & attr & ";" & scope
cmd.CommandText不是对象,它只是:
cmd.CommandText=base&“;”&filter&“;”&attr&“;”&scope发生错误。在缓存中找不到directory属性。它已修复,但如何检查dn是否具有与某些dn具有mail类似的属性,如何检查某些dn是否具有空属性(),以检查该属性是否具有值。
attr = "distinguishedName,userid,mail,company,displayName"
Set cmd.CommandText = base & ";" & filter & ";" & attr & ";" & scope