将DN放入变量VBS

时间:2016-01-08 02:53:11

标签: vbscript

我正在创建一个脚本,允许我在我们的域中输入用户名,并让它从他们的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

1 个答案:

答案 0 :(得分:0)

如果有人遇到同样的问题 - 这很容易解决。 只需将其写入变量而不是回显。

Do Until rs.EOF
  strDN = rs.Fields("distinguishedname").value
  rs.MoveNext
Loop