Импорт пользователя в AD в OU с использованием powershell - PullRequest
0 голосов
/ 18 января 2012

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

Просто уведомление, когда ясделать то же самое, но для cn он добавляет пользователей, но для 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.

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

1 Ответ

1 голос
/ 18 января 2012

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

$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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...