Active Directory 运行 服务器外的用户创建 VBS 不授予组成员资格

Active Directory running user creation VBS outside of server doesnt grant groupmembership

我的问题是: 当我 运行 我的服务器上的用户创建脚本工作正常时,用户被创建并拥有会员资格(根据 .txt 文件)

当我 运行 在我的服务器之外使用相同的脚本时,用户被创建但没有会员资格

当我 运行 在服务器外部使用与管理员相同的脚本时,用户已创建但没有成员资格

所以这是添加会员的相关代码:

Dim fso, f, Row, Field
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile ("\some\folder\user.txt",1,0)

Do while not f.AtEndOfLine
Row = f.readLine
Field = split(Row,",")
Username = Field(0)
Group = Field(1)
Lastname = Field(2)
Password = Field(3)
ScriptP = Field(4)
Project = Field(5)
Call UserCreation(Username,Group,Lastname,Password,ScriptP)
Loop

f.Close
Wscript.Quit(0)

Sub UserCreation (Username,Group,Lastname,Password,ScriptP)
Dim ouo, b
Set ouo = GetObject("LDAP://OU=abcOU,DC=my,DC=domain")
Set b = ouo.Create("user", "CN=" & Group & " " & Lastname)
Dim WshShell, ret
Set WshShell = WScript.CreateObject("WScript.Shell")
b.Put "sAMAccountName", Username
b.Put "userPrincipalName", Username & "@my.domain"
b.Put "scriptPath", ScriptP
b.SetInfo
b.SetPassword Password
b.AccountDisabled = False
b.SetInfo

cmdbegin = "cmd /C dsmod group"
CN = "CN=TN_" & Project & ",OU=projectOU,DC=my,DC=domain" 
oudc = "OU=abcOU,DC=my,DC=domain"
cmdmid = "-addmbr"
grpadd = cmdbegin & " " & AddQuotes(CN) & " " & cmdmid & " " & AddQuotes("CN=" & Group & " " & Lastname & "," & oudc) & " >>\some\folder\log.txt"
WshShell.Run grpadd

那 log.txt 只是在完成时添加这样一行:

dsmod was successful:CN=TN_Test,OU=projectOU,DC=my,DC=domain

问题的根源可能是 dsmod 没有安装在您 运行 所在的计算机上,因为 the documentation 说它仅默认安装在域控制器。这可以通过命令行中的 运行 dsmod 来确认。

但这似乎也很难做到。您可以将 cmdbegin 行到结尾的所有内容替换为:

Set group = GetObject("LDAP://CN=TN_" & Project & ",OU=projectOU,DC=my,DC=domain")
group.Add(b.aDSPath)

group 变量将是一个 IADsGroup object, so you can use its Add 添加用户的方法。