使用powershell将用户导入到OU中的AD
我有一段powershell脚本,它循环遍历用户名称并将用户添加到Active Directory中的OU(organizationalUnit),但我有一个问题:由于某种原因,我无法将用户添加到该organizationalUnit。我在CreateUser上遇到一个错误,它说对象是空的,所以换句话说,我认为我的连接字符串似乎不起作用,我尝试了所有方法,但不知道如何解决 只是一个通知,当我做同样的事情,但对于cn它确实添加了用户,但对于OU不 下面是一段脚本:使用powershell将用户导入到OU中的AD,powershell,active-directory,Powershell,Active Directory,我有一段powershell脚本,它循环遍历用户名称并将用户添加到Active Directory中的OU(organizationalUnit),但我有一个问题:由于某种原因,我无法将用户添加到该organizationalUnit。我在CreateUser上遇到一个错误,它说对象是空的,所以换句话说,我认为我的连接字符串似乎不起作用,我尝试了所有方法,但不知道如何解决 只是一个通知,当我做同样的事情,但对于cn它确实添加了用户,但对于OU不 下面是一段脚本: $Connection = "L
$Connection = "LDAP://ou=SopraUsers,dc=sopragroup,dc=lan"
# Get A Unique Password
[string]$Password = Generate-Password
$username=$Firstname.substring(0,1).toLower() + $Surname.toLower().replace(" ", "")
# Create User in AD
$container =[ADSI] $Connection
$User = $container.Create("User", "cn="+$username)
$User.Put("sAMAccountName", $username)
$User.Put("givenName", $Firstname)
$User.Put("sn", $Surname)
$User.Put("mail", "")
$User.Put("displayName", $Firstname + " "+$Surname)
$User.SetInfo()
$User.PsBase.Invoke("SetPassword", $Password)
$User.PsBase.InvokeSet("AccountDisabled", $false)
$User.pwdLastSet = 0
$User.SetInfo()
我认为问题出在$Connection=“LDAP://ou=SopraUsers,dc=sopragroup,dc=lan”
因为如果我做了$Connection=“LDAP://cn=Users,dc=sopragroup,dc=lan”
然后我确实添加了人,但只针对用户
这是我的广告的样子,你可以看到我希望ppl被添加到最低的OU
提前感谢您的帮助只需在评论中添加这一行:
$User.Put("mail", "")
如果你不想把一个电子邮件地址删除这行;在我的服务器上,它给出了一个错误的属性语法
就连接字符串而言,您能试试这个连接字符串吗
"LDAP://sopragroup.lan/ou=SopraUsers,dc=sopragroup,dc=lan"
您可以创建如下连接:
$Connection = [adsi] "LDAP://sopragroup.lan/ou=SopraUsers,dc=sopragroup,dc=lan"
或者,如果要进行身份验证:
$Connection New-Object System.DirectoryServices.DirectoryEntry ("LDAP://ServerIP/ou=SopraUsers,dc=sopragroup,dc=lan","administrator@sopragroup.lan","pwd")
你能给出准确的错误信息吗?是的,对我来说似乎也不错,正如我说的,它可以创建用户onder cn,但当我把它改为cn时,它就不起作用了,说不能调用create之类的东西,但我会发布错误。我修改我的答案,我想你可以试试这个连接字符串。