Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Получить SID пользователя (http://forum.oszone.net/showthread.php?t=261142)

support23 24-05-2013 09:57 2155294

Получить SID пользователя
 
Добрый день!
Подскажите как получить SID пользователя в переменную, зная логин ?

Iska 24-05-2013 11:52 2155382

support23, текущего пользователя или произвольного?

support23 24-05-2013 13:06 2155411

Цитата:

Цитата Iska
текущего пользователя или произвольного? »

произвольного, работающего в домене

Iska 24-05-2013 22:13 2155774

Например, так:
Код:

AutoItSetOption("MustDeclareVars", 1)

Local $sComputer        = "."
Local $oSWbemLocator    = ObjCreate("WbemScripting.SWbemLocator")
Local $oSWbemServicesEx  = $oSWbemLocator.ConnectServer($sComputer, "root\cimv2")
Local $oSWbemObjectEx

Local $sDomain  = "domain"
Local $sUserName = "username"

For $oSWbemObjectEx In $oSWbemServicesEx.ExecQuery( _
                "SELECT * FROM Win32_UserAccount WHERE " & _
                "Domain = '" & $sDomain & "' AND " & _
                "Name  = '" & $sUserName & "'" _
        )

        ConsoleWrite($oSWbemObjectEx.SID & @CRLF)
Next

Exit(0)


glax24 25-05-2013 23:22 2156294

Или считать из реестра
Код:

$s_Key = 'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList'
$i = 0
While 1
        $i += 1
        $sSID = RegEnumKey($s_Key, $i)
        If @error <> 0 Then ExitLoop ; no more Keys
        If StringLen($sSID) > 8 Then
                MsgBox(0, "", 'SID = ' & $sSID)
        EndIf
WEnd


Iska 25-05-2013 23:30 2156298

Цитата:

Цитата glax24
Или считать из реестра »

glax24, откуда такая уверенность — что произвольно выбранный пользователь регистрировался на данной машине?

glax24 26-05-2013 10:00 2156417

Iska, а как с помощью WMI вы получите SID пользователя не активной ОС, да никак.
Цитата:

Цитата Iska
что произвольно выбранный пользователь регистрировался на данной машине »

И что значит регистрировался? Был создан но под ним не разу не заходили?

Iska 26-05-2013 13:59 2156519

Цитата:

Цитата glax24
а как с помощью WMI вы получите SID пользователя не активной ОС, да никак. »

Коллега! Я что-то пропустил в вопросе и пояснениях автора темы? Вы сами придумали свой вопрос, сами ответили на него, а теперь пытаетесь его обосновать.

Цитата:

Цитата glax24
И что значит регистрировался? »

Нажал «Ctrl-Alt-Del», ввёл логин, домен, пароль и нажал «Enter».

Цитата:

Цитата glax24
Был создан но под ним не разу не заходили? »

На данной машине.

support23 27-05-2013 08:30 2156933

Iska, благодарю за помощь! Вопрос закрыт!

madmasles 31-05-2013 15:48 2159933

support23,
Штатный вариант.
Код:

#include <Security.au3>

Local $aArrayOfData = _Security__LookupAccountName(@UserName)

; Print returned data if no error occured
If IsArray($aArrayOfData) Then
    ConsoleWrite("SID String = " & $aArrayOfData[0] & @CRLF)
    ConsoleWrite("Domain name = " & $aArrayOfData[1] & @CRLF)
    ConsoleWrite("SID type = " & _Security__SidTypeStr($aArrayOfData[2]) & @CRLF)
EndIf



Время: 09:07.

Время: 09:07.
© OSzone.net 2001-