我遇到了使用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) 如果有人可以帮助我,真的很好......;)
由于
答案 0 :(得分:1)
是的,有可能,我已经完成了。您需要使用System.DirectoryServices.Protocols.LdapConnection对象(假设为$ c)绑定到LDAP服务器,然后创建一个System.DirectoryServices.Protocols.AddRequest对象并填充其属性(我只在此显示一对示例):
MOV EDX, 0
DIV [N] ;Divide the result of the calculation
然后发送请求:
[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
答案 1 :(得分:0)
LDAP不支持“插入”,但支持“添加”。 LDAP客户端必须创建一个条目,并使用ADD请求将该条目传输到目录服务器。服务器将ADD结果返回给LDAP客户端,其中包含有关ADD请求成功或失败的信息。因此,请查看文档以获取有关向目录服务器发送ADD请求以及解释后续响应的信息。
LDAP客户端必须具有添加条目的权限(在本例中为用户)。这涉及使用BIND请求将连接的授权状态更改为允许在目录信息树中的指定位置添加条目的状态。
也许这link会有所帮助。
答案 2 :(得分:-1)
您说“创建新的LDAP用户”但您可以创建AD用户,然后使用LDAP可以使用它们。
我使用script from Microsoft做类似的事情。
如果查看代码,您应该能够看到他们是如何做到的。我们使用他们的代码进行了一些调整来完成我们需要的工作。
-Jim