«Сервер не желает обрабатывать запрос» при создании группы AD - PullRequest
1 голос
/ 19 июля 2011

Я пытаюсь создать сценарий Powershell для создания новой группы («TestUsers») в контейнере «Users» на моем контроллере домена. Контроллер домена работает на 64-битной виртуальной машине 2008 Server R2.

Мой код такой:

#  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 \ Administrator

Попробовал также разные типы групп без удачи.

Я новичок в создании сценариев AD, поэтому я в значительной степени следовал приведенной ниже статье.

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

Как и в статье выше, я не хотел бы устанавливать сторонние командлеты.

Спасибо.

1 Ответ

2 голосов
/ 19 июля 2011

Вы просто забыли, что групповой объект (здесь $CreatedGroup) возвращается созданием в узле пользователей.Вы должны добавить атрибуты к объекту группы.

Вот решение:

#  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 вы можете использовать командлет из модуля ActiveDirectory (самый короткий, более читаемый)

Import-Module ActiveDirectory
New-ADGroup -Name $groupName -SamAccountName $groupName -GroupCategory Security -GroupScope Global -DisplayName $groupName -Path "CN=Users" + $rootdn 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...