1

我面临着使用 Powershell 脚本创建新 LDAP 用户的挑战。我用谷歌搜索了很多,但我没有找到好的结果......

这是我从 LDAP 获取用户的代码...

    $authenticationType  = [System.DirectoryServices.AuthenticationTypes]::ServerBind
$objSearcherRoot = New-Object System.DirectoryServices.DirectoryEntry("LDAP://***.local.com:777/ou=user,o=company", "uid=testuser,ou=system,o=company", "password" , $authenticationType)
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher 
$objSearcher.SizeLimit= 0
$objSearcher.PageSize = 1000
$objSearcher.SearchRoot = $objSearcherRoot
$objSearcher.Filter = "cn=$cn"
$result = $objSearcher.FindAll()

我的问题是,我不知道如何插入新的 LDAP 用户(不是 Active Directory)如果有人可以帮助我,那就太好了... ;)

谢谢

4

3 回答 3

1

是的,有可能,我已经做到了。您需要使用 System.DirectoryServices.Protocols.LdapConnection 对象(假设为 $c)绑定到 LDAP 服务器,然后创建一个 System.DirectoryServices.Protocols.AddRequest 对象并填充其属性(我仅在此展示一对例子):

[System.Reflection.Assembly]::LoadWithPartialName("System.DirectoryServices.Protocols")
[System.Reflection.Assembly]::LoadWithPartialName("System.Net")
$c = New-Object -TypeName System.DirectoryServices.Protocols.LdapConnection -ArgumentList "***.local.com:777,uid=testuser,ou=system,o=company", "password" , $authenticationType"
$c.Bind()
$r = New-Object -TypeName System.DirectoryServices.Protocols.AddRequest
$r.DistinguishedName = "uid= xxxx, ou=user, o=company"
$r.Attributes.Add((New-Object -TypeName System.DirectoryServices.Protocols.DirectoryAttribute -ArgumentList "objectclass",@("top","organizationalPerson","person","inetorgperson","inetuser","mailrecipient","pwmuser","posixAccount"))) | Out-Null
$r.Attributes.Add((New-Object -TypeName System.DirectoryServices.Protocols.DirectoryAttribute -ArgumentList "cn",($FirstName+" "+$LastName))) | Out-Null

然后只需发送请求:

$c.SendRequest($r)
于 2016-07-13T21:06:23.867 回答
0

LDAP 不支持“插入”,但支持“添加”。LDAP 客户端必须创建一个条目并使用 ADD 请求将该条目传输到目录服务器。服务器向 LDAP 客户端返回一个 ADD 结果,其中包含有关 ADD 请求成功或失败的信息。因此,请查看文档以获取有关将 ADD 请求传输到目录服务器并解释后续响应的信息。

LDAP 客户端必须有权添加条目(在本例中为用户)。这涉及使用 BIND 请求将连接的授权状态更改为允许在目录信息树的指定位置添加条目的状态。

也许这个链接会有所帮助。

于 2013-07-11T13:42:38.490 回答
-1

您说“创建新的 LDAP 用户”,但您可以创建 AD 用户,然后他们可以使用 LDAP。

我使用Microsoft 的脚本来做类似的事情。

如果您查看代码,您应该能够看到他们是如何做到的。我们使用他们的代码进行了一些调整来做我们需要的事情。

-吉姆

于 2013-07-12T08:43:58.113 回答