2012-01-17 4 views
0

У меня есть сценарий powershell, который петли через имя пользователя и добавляет их в Active Directory в OU (organizationUnit), но у меня есть проблема: по какой-то причине я могу " t добавить пользователей к этой организации. Я получаю ошибку при создании пользователя, который говорит, что объект пуст, поэтому, я думаю, что моя строка соединения doenst, похоже, работает, я все пробовал и не знаю, как ее решить.Импортирование пользователя в AD в OU с использованием powershell

Просто уведомление, когда я делаю то же самое, но для сп это добавить пользователей, но и для OU не ...

Вот фрагмент сценария:

$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"

Тогда я забираю людей, но только для пользователей.

Вот как выглядит мой AD, поскольку вы можете видеть, что я хочу, чтобы ppl добавлялся к низшему OU.

Заранее спасибо за помощь

+0

Можете ли вы дать точное сообщение об ошибке, пожалуйста? – JPBlanc

ответ

1

Просто поставить эту строку в комментарий:

$User.Put("mail", "") 

Если вы не хотите, чтобы поместить адрес электронной почты, просто удалить эту строку; на моем сервере он дает плохой синтаксис атрибута.


Что касается строки связи, то вы можете попробовать эту строку связи?

"LDAP://sopragroup.lan/ou=SopraUsers,dc=sopragroup,dc=lan" 

Вы можете создать Connexion так:

$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","[email protected]","pwd") 
+0

да, похоже, хорошо для меня тоже, и, как я сказал, он работает с созданием пользователя onder cn, но когда я ставил вместо cn, OU он просто не работает, говорит что-то вроде create can not be called, но скоро ошибка post post – Alnedru

+0

Я изменяю мой ответ, я думаю, вы можете попробовать эту строку связи. – JPBlanc