Как узнать учетные данные пользователя в домене

Аватара пользователя
Angel_19

Как узнать учетные данные пользователя в домене

Сообщение Angel_19 »

Доброго!



Подскажите как узнать учетные данные пользователя вошедшего в систему если используется домен?

Т.е. нужен логин, и его ФИО.
Аватара пользователя
Creat0R

Re: Как узнать учетные данные пользователя в домене

Сообщение Creat0R »

Код:

Код: Выделить всё

$sFullName = _GetUserName()
If @error Then
    ConsoleWrite('Not in domain' & @LF)
Else
    ConsoleWrite($sFullName & @LF)
EndIf
Func _GetUserName($sDomain = @ComputerName, $sUserName = @UserName)
    Local $objWMIService = ObjGet('winmgmts:\\' & @ComputerName & '\root\CIMV2')
    Local $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_UserAccount WHERE Name = "' & $sUserName & '"', 'WQL', 0x10 + 0x20)
    If IsObj($colItems) Then
        For $objItem In $colItems
            If $objItem.Domain = $sDomain Then
                $sFullName = $objItem.FullName
                If $sFullName  '' Then
                    Return $sFullName & ' (' & $sUserName & ')'
                EndIf
            EndIf
        Next
    EndIf
    Return SetError(1, 0, $sUserName)
EndFunc
Аватара пользователя
Angel_19

Re: Как узнать учетные данные пользователя в домене

Сообщение Angel_19 »

Скрипт все время выдает:



Код:

Код: Выделить всё

Not in domain

Хотя я в доменной учетке сейчас.

Пробовал при вызове функции явно указывать домен, результат тот же:



Код:

Код: Выделить всё

$sFullName = _GetUserName('mydomain')

, также пробовал:



Код:

Код: Выделить всё

$sFullName = _GetUserName('mydomain.local')
Аватара пользователя
Creat0R

Re: Как узнать учетные данные пользователя в домене

Сообщение Creat0R »

Цитата Angel_19:



Скрипт все время выдает
Как узнать учетные данные пользователя в домене




А что если закомментировать условие:



Код:

Код: Выделить всё

If $objItem.Domain = $sDomain Then

?
Аватара пользователя
madmasles

Re: Как узнать учетные данные пользователя в домене

Сообщение madmasles »

Angel_19,

У меня не возвращается $objItem.FullName ни для кого.

У меня только так работает:

Код:

Код: Выделить всё

;...
If $objItem.Domain = $sDomain Then
	Local $sRet = $objItem.FullName
	If $sRet Then Return $sRet
	$sRet = $objItem.Caption
	If $sRet Then Return $sRet
EndIf
;...
Аватара пользователя
Angel_19

Re: Как узнать учетные данные пользователя в домене

Сообщение Angel_19 »

Помогло изменение:



Код:

Код: Выделить всё

$sFullName = $objItem.FullName

на



Код:

Код: Выделить всё

$sFullName = $objItem.Name
Аватара пользователя
Iska

Re: Как узнать учетные данные пользователя в домене

Сообщение Iska »

Код:

Код: Выделить всё

AutoItSetOption("MustDeclareVars", 1)
Local $oADSystemInfo = ObjCreate("ADSystemInfo")
Local $oIADsUser     = ObjGet("LDAP://" & $oADSystemInfo.UserName)
ConsoleWrite($oIADsUser.sAMAccountName & @CRLF)
ConsoleWrite($oIADsUser.FullName & @CRLF)
Аватара пользователя
madmasles

Re: Как узнать учетные данные пользователя в домене

Сообщение madmasles »

Iska,

У меня Ваш код с такой ошибкой вылетает:

Код:

Код: Выделить всё

... .au3 (15) : ==> The requested action with this object has failed.:
Local $oIADsUser     = ObjGet("LDAP://" & $oADSystemInfo.UserName)
Local $oIADsUser     = ObjGet("LDAP://" & $oADSystemInfo.UserName^ ERROR
->18:31:03 AutoIt3.exe ended.rc:1
Ответить

Вернуться в «AutoIt»