2011-07-18 94 views
1

我試圖創建一個Powershell腳本來在我的域控制器中的用戶容器下創建一個新組(「TestUsers」)。域控制器運行於2008 Server R2 64位虛擬機。創建AD組時,「服務器不願意處理請求」

我的代碼是這樣的:

# Group Types in AD 
# 
# -2147483646 Global security group 
# -2147483644 Domain local security group 
# -2147483640 Universal security group 

$groupName = "TestUsers" 
$groupType = -2147483646 

$root = [ADSI]"" 
$rootdn = $root.distinguishedName 
$UsersNode = [ADSI]("LDAP://localhost:389/cn=Users,"+$rootdn) 
$UsersNode.Create("group", "cn=" + $groupName) 
$usersNode.Put("groupType", $groupType)  
$UsersNode.Put("sAMAccountName", $groupName) 
$UsersNode.SetInfo() 

當執行$UsersNode.SetInfo()腳本引發以下錯誤:

Exception calling "SetInfo" with "0" argument(s): "The server is unwilling to process the request. 
" 
At line:1 char:19 
+ $UsersNode.SetInfo <<<<() 
    + CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
    + FullyQualifiedErrorId : CatchFromBaseAdapterMethodInvokeTI 

我運行腳本的域控制器本身,登錄的域管理員帳戶即mydomain \管理員

也試過不同的組類型沒有任何運氣。

我是一位AD腳本編程的新手,所以我在下面的文章中有很多內容。

http://geekseat.wordpress.com/2011/02/10/script-of-the-day-creating-ad-groups-without-qad-cmdlets/

正如上述文章中,我不希望安裝第三方的cmdlet。

謝謝。

+0

從什麼JP說,你可能需要但調整你的劇本,但我我'說一些關於(有些情緒化!)的錯誤消息「服務器不願意處理請求」。 我曾經間歇地得到過,這是一個臨時性問題,重試腳本\ action會起作用。我們認爲這可能與複製有關,但從未到達問題的底部。 有時候,AD似乎會忽略我們! :-) – Matt

+0

我隨身帶着一根釘子穿過它,不願意使用電腦...... – JasonMArcher

回答

2

您只需忘記在用戶節點中創建時返回組對象(此處爲$CreatedGroup)。你必須在groupe對象上添加屬性。

這裏是解決方案:

# Group Types in AD 
# 
# -2147483646 Global security group 
# -2147483644 Domain local security group 
# -2147483640 Universal security group 

$groupName = "TestUsers" 
$groupType = -2147483646 

$root = [ADSI]"" 
$rootdn = $root.distinguishedName 
$UsersNode = [ADSI]("LDAP://localhost:389/cn=Users,"+$rootdn) 
$CreatedGrp = $UsersNode.Create("group", "cn=" + $groupName) 
$CreatedGrp.Put("groupType", $groupType) 
$CreatedGrp.Put("sAMAccountName", $groupName) 
$CreatedGrp.SetInfo() 

小心運行它爲管理員。


如果您使用的是Windows Server 2008 R2中,你可以使用Cmdlet的從ActiveDirectory的模塊(最短,更具可讀性)

Import-Module ActiveDirectory 
New-ADGroup -Name $groupName -SamAccountName $groupName -GroupCategory Security -GroupScope Global -DisplayName $groupName -Path "CN=Users" + $rootdn 
相關問題