2012-01-17 119 views
0

我有一段PowerShell腳本循環通過用戶名並將它們添加到活動目錄中進入OU(organizationalUnit),但我有一個問題:由於某種原因,我可以'將用戶添加到該組織單位。我在創建用戶時遇到了一個錯誤,該用戶說該對象是空的,所以換句話說,我認爲我的連接字符串似乎可以正常工作,我嘗試了所有內容並且不知道如何解決。使用powershell將用戶導入到OU中的OU

只是一個通知,當我做相同的,但對於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"

然後我確實讓人們加入,但只爲用戶。

下面是我的廣告看起來像,你可以看到我想要ppl被添加到最低的OU。

在此先感謝您的幫助

+0

你能給出確切的錯誤消息嗎? – JPBlanc 2012-01-18 04:14:21

回答

1

只是把這個行註釋:

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

對我來說好像也沒問題,正如我說的,它與創建用戶onder cn的工作,但是當我把而不是cn,OU它只是不工作,說創建不能被稱爲,但生病的錯誤很快 – Alnedru 2012-01-18 06:36:21

+0

我修改我的回答,我想你可以試試這個連接字符串。 – JPBlanc 2012-01-18 12:53:41