使用powershell将用户添加到AD

问题描述:

我有一个关于如何使用PowerShell将用户添加到AD的问题,我编写了一个小脚本,但是当我尝试创建用户时,我总是遇到错误。使用powershell将用户添加到AD

$connection= "LDAP://ou=Users, dc="domain", dc="com" 
    $OU = [adsi] $Connection 
      $User = $OU.Create("user", "Test Person") 
      $User.Put("Firstname", "Test") 
      $User.Put("Surname", Person) 
      $User.Put("Email", "[email protected]") 
      $User.SetInfo() 

我觉得我的连接字符串是错误的,但我尝试不同的方法已经和仍然没有成功。这即时尝试本地。需要得到它的工作,但通常我的广告是在不同的服务器上,那么该怎么做呢?

在此先感谢。

这给一试:

$container = [ADSI] "LDAP://dc.sopragroup.lan/cn=Users,dc=sopragroup,dc=lan" 
$UserName = "user" 
$User = $container.Create("User", "cn=" + $UserName) 
$User.Put("sAMAccountName", $UserName) 
$User.Put("givenName", "Test") 
$User.Put("sn", "Person") 
$User.Put("mail", "[email protected]") 
$User.SetInfo() 
$User.psbase.InvokeSet('AccountDisabled', $false) 
$User.SetInfo() 
$User.SetPassword("[email protected]") 
+0

,我收到了以下错误:在检索成员“创建”时发生以下异常:“转介从服务器返回 ” 在C:\用户\用户\桌面\ addusers.ps1:72炭:10 + $ USER = Alnedru 2012-01-16 08:05:38

+0

@ user1002583没有符合你改变LDAP字符串以符合你的环境?这在我的测试域控制器上测试出来了。当然,我不得不改变域名来匹配。这个[page](http://www.computerperformance.co.uk/Logon/code/code_8007202B.htm)讲述了你得到的错误,它看起来像你的LDAP字符串需要纠正。你也有UAC运行?如果是这样,请确保运行PowerShell提升。 – 2012-01-16 08:20:46

+0

上面我更新了图片的帖子,我的广告看起来像 – Alnedru 2012-01-16 08:51:41

下面是另一个例子(@Andy阿里斯门迪是第一个)与其他一些细节:

  1. 如果你想给用户和密码(登录使用不同于当前用户的用户登录到服务器),则可以使用DirectoryEntry构造函数
  2. 常见的错误是当您在目录中创建对象时,表示该对象在目录树中的名称是BU与建设ilt:attribute=value。在Active-Directory中,您无法选择模式施加的属性。对于userinetOrgPerson它的CN对于organizationalUnit它是OU。在你的情况下,该对象的名称是CN=Test Person

你会在创建一个OU和一个用户时发现这里。

Clear-Host 
$dn = New-Object System.DirectoryServices.DirectoryEntry ("LDAP://192.168.234.200:389/dc=dom,dc=fr","[email protected]","admin") 

# Create an OU 
$Monou = $dn.create("OrganizationalUnit", "ou=Monou") 
#$Monou.Description = "Une description" 
$Monou.put("Description", "Une description") 
$Res = $Monou.Setinfo() 


# Create a user 
$objUtilisateur = $Monou.create("inetOrgPerson", "cn=Marc Assin") 
$objUtilisateur.setinfo() 

$objUtilisateur.samaccountname = "Massin" 
$objUtilisateur.givenName = "Marc" 
$objUtilisateur.sn = "Assin" 
#$objUtilisateur.displayName = $objUtilisateur.givenName + " " + $objUtilisateur.sn 
$objUtilisateur.userPrincipalName = "[email protected]" 

# Pu the state of the account#$objUtilisateur.SetPassword("test.2010") 
$objUtilisateur.pwdLastSet = 0 
$objUtilisateur.userAccountControl = 544 

# Write the datas of the user 
$objUtilisateur.SetInfo()