我正在创建一个脚本,允许我在我们的域中输入用户名,并让它从他们的AD配置文件中查找属性。
首先,我获得了用户的DN。一旦我有了 - 我可以跑;
Set objAD = CreateObject("ADSystemInfo")
Set objUser = GetObject("LDAP://" & ***I NEED DN HERE***)
并查询要输出的特定属性。
所以我需要做的是以某种方式将DN放入变量以放入LDAP查询。我知道(我认为)我需要从下面的Do循环中获取它,但我有一个完整的空白,无法弄清楚如何将整个DN放入变量。
Username = InputBox("Enter UserName to lookup...")
Set rootDSE = GetObject("LDAP://RootDSE")
base = "<LDAP://" & rootDSE.Get("defaultNamingContext") & ">"
fltr = "(&(objectClass=user)(objectCategory=Person)" & "(sAMAccountName=" & UserName & "))"
attr = "distinguishedName,sAMAccountName"
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 & ";" & fltr & ";" & attr & ";" & scope
Set rs = cmd.Execute
Do Until rs.EOF
WScript.Echo rs.Fields("distinguishedName").Value
rs.MoveNext
Loop
rs.Close
conn.Close
答案 0 :(得分:0)
如果有人遇到同样的问题 - 这很容易解决。 只需将其写入变量而不是回显。
Do Until rs.EOF
strDN = rs.Fields("distinguishedname").value
rs.MoveNext
Loop