Добрый день!
Помогите решить проблему.
Для работы с AD я использую библиотеку AD. Все работает как часы, но тут столкнулся с проблемой и никак не получается ее решить.
Мне необходимо добавить пользователя в определенную доменную группу. Добавление я произвожу с помощью функции _AD_AddUserToGroup библиотеки AD.au3. При наличии прав добавление проходит успешно, если пользователь уже в группе, то данная ошибка отслеживается отлично.
Проблема появляется тогда, когда нет прав на добавление пользователей в группу, никак не получается отследить данную ошибку, в результате чего программа автоматически закрывается с ошибкой:
AD.au3" (2332) : ==> The requested action with this object has failed.:
$oGroup.Add($oUser.AdsPath)
$oGroup^ ERROR
(ниже приведен код функции)
Функция используемая из библиотеки.
Комментарий к функции:
; Return values .: Success - 1
; Failure - 0, sets @error to:
; |1 - $sGroup does not exist
; |2 - $sUser (user or computer) does not exist
; |3 - $sUser (user or computer) is already a member of $sGroup
; |x - Error returned by Add or SetInfo method (Missing permission etc.)
Мониторил разные состояния @error (от просто существования, до 'x' и различные числа >0) - программа просто завершается.
Для интереса пытался внедрить некий обработчик ошибок через ObjEvent('AutoIt.Error', ErrorFunc) - результата нет.
Заранее спасибо за помощь!
Помогите решить проблему.
Для работы с AD я использую библиотеку AD. Все работает как часы, но тут столкнулся с проблемой и никак не получается ее решить.
Мне необходимо добавить пользователя в определенную доменную группу. Добавление я произвожу с помощью функции _AD_AddUserToGroup библиотеки AD.au3. При наличии прав добавление проходит успешно, если пользователь уже в группе, то данная ошибка отслеживается отлично.
Проблема появляется тогда, когда нет прав на добавление пользователей в группу, никак не получается отследить данную ошибку, в результате чего программа автоматически закрывается с ошибкой:
AD.au3" (2332) : ==> The requested action with this object has failed.:
$oGroup.Add($oUser.AdsPath)
$oGroup^ ERROR
(ниже приведен код функции)
Функция используемая из библиотеки.
Код:
Func _AD_AddUserToGroup($sGroup, $sUser)
If Not _AD_ObjectExists($sGroup) Then Return SetError(1, 0, 0)
If Not _AD_ObjectExists($sUser) Then Return SetError(2, 0, 0)
If _AD_IsMemberOf($sGroup, $sUser) Then Return SetError(3, 0, 0)
If StringMid($sGroup, 3, 1) <> "=" Then $sGroup = _AD_SamAccountNameToFQDN($sGroup) ; sAMACccountName provided
If StringMid($sUser, 3, 1) <> "=" Then $sUser = _AD_SamAccountNameToFQDN($sUser) ; sAMACccountName provided
Local $oUser = __AD_ObjGet("LDAP://" & $sAD_HostServer & "/" & $sUser) ; Retrieve the COM Object for the user
Local $oGroup = __AD_ObjGet("LDAP://" & $sAD_HostServer & "/" & $sGroup) ; Retrieve the COM Object for the group
$oGroup.Add($oUser.AdsPath)
If @error Then Return SetError(@error, 0, 0)
$oGroup.SetInfo
If @error Then Return SetError(@error, 0, 0)
Return 1
EndFunc ;==>_AD_AddUserToGroup
Комментарий к функции:
; Return values .: Success - 1
; Failure - 0, sets @error to:
; |1 - $sGroup does not exist
; |2 - $sUser (user or computer) does not exist
; |3 - $sUser (user or computer) is already a member of $sGroup
; |x - Error returned by Add or SetInfo method (Missing permission etc.)
Мониторил разные состояния @error (от просто существования, до 'x' и различные числа >0) - программа просто завершается.
Для интереса пытался внедрить некий обработчик ошибок через ObjEvent('AutoIt.Error', ErrorFunc) - результата нет.
Заранее спасибо за помощь!