Показать полную графическую версию : [решено] Получить SID пользователя
support23
24-05-2013, 09:57
Добрый день!
Подскажите как получить SID пользователя в переменную, зная логин ?
support23, текущего пользователя или произвольного?
support23
24-05-2013, 13:06
текущего пользователя или произвольного? »
произвольного, работающего в домене
Например, так:
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)
Или считать из реестра
$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
Или считать из реестра »
glax24, откуда такая уверенность — что произвольно выбранный пользователь регистрировался на данной машине?
Iska, а как с помощью WMI вы получите SID пользователя не активной ОС, да никак.
что произвольно выбранный пользователь регистрировался на данной машине »
И что значит регистрировался? Был создан но под ним не разу не заходили?
а как с помощью WMI вы получите SID пользователя не активной ОС, да никак. »
Коллега! Я что-то пропустил в вопросе и пояснениях автора темы? Вы сами придумали свой вопрос, сами ответили на него, а теперь пытаетесь его обосновать.
И что значит регистрировался? »
Нажал «Ctrl-Alt-Del», ввёл логин, домен, пароль и нажал «Enter».
Был создан но под ним не разу не заходили? »
На данной машине.
support23
27-05-2013, 08:30
Iska, благодарю за помощь! Вопрос закрыт!
madmasles
31-05-2013, 15:48
support23,
Штатный вариант.#include (http://autoit-script.ru/autoit3_docs/keywords.htm##include) <Security.au3>
Local (http://www.autoitscript.com/autoit3/docs/keywords.htm#Local) $aArrayOfData = _Security__LookupAccountName (http://autoit-script.ru/autoit3_docs/libfunctions/_security__lookupaccountname.htm)(@UserName (http://autoit-script.ru/autoit3_docs/macros.htm#@username))
; Print returned data if no error occured
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) IsArray (http://autoit-script.ru/autoit3_docs/functions/IsArray.htm)($aArrayOfData) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)("SID String = " & $aArrayOfData[0] & @CRLF (http://autoit-script.ru/autoit3_docs/macros.htm#@crlf))
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)("Domain name = " & $aArrayOfData[1] & @CRLF (http://autoit-script.ru/autoit3_docs/macros.htm#@crlf))
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)("SID type = " & _Security__SidTypeStr (http://autoit-script.ru/autoit3_docs/libfunctions/_security__sidtypestr.htm)($aArrayOfData[2]) & @CRLF (http://autoit-script.ru/autoit3_docs/macros.htm#@crlf))
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.