Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Получить SID пользователя

Ответить
Настройки темы
[решено] Получить SID пользователя

Пользователь


Сообщения: 74
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 09:57, 24-05-2013

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


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

Отправлено: 11:52, 24-05-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 74
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
текущего пользователя или произвольного? »
произвольного, работающего в домене

Отправлено: 13:06, 24-05-2013 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Например, так:
Код: Выделить весь код
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)
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:13, 24-05-2013 | #4


Аватара для glax24

Пользователь


Сообщения: 50
Благодарности: 11

Профиль | Отправить PM | Цитировать


Или считать из реестра
Код: Выделить весь код
$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

Отправлено: 23:22, 25-05-2013 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


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

Отправлено: 23:30, 25-05-2013 | #6


Аватара для glax24

Пользователь


Сообщения: 50
Благодарности: 11

Профиль | Отправить PM | Цитировать


Iska, а как с помощью WMI вы получите SID пользователя не активной ОС, да никак.
Цитата Iska:
что произвольно выбранный пользователь регистрировался на данной машине »
И что значит регистрировался? Был создан но под ним не разу не заходили?

Отправлено: 10:00, 26-05-2013 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата glax24:
а как с помощью WMI вы получите SID пользователя не активной ОС, да никак. »
Коллега! Я что-то пропустил в вопросе и пояснениях автора темы? Вы сами придумали свой вопрос, сами ответили на него, а теперь пытаетесь его обосновать.

Цитата glax24:
И что значит регистрировался? »
Нажал «Ctrl-Alt-Del», ввёл логин, домен, пароль и нажал «Enter».

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

Отправлено: 13:59, 26-05-2013 | #8


Пользователь


Сообщения: 74
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 08:30, 27-05-2013 | #9


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


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
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:48, 31-05-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Получить SID пользователя

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Получить имя пользователя главного администратора Dragokas Скриптовые языки администрирования Windows 2 09-05-2013 21:17
VBS/WSH/JS - JS код - должен выдавать SID пользователя RRRinat Скриптовые языки администрирования Windows 3 21-10-2012 19:11
[решено] SID domain/SID computer. n e w b i e Microsoft Windows NT/2000/2003 6 28-12-2011 14:54
C/C++ - [решено] Как получить имя пользователя? Viruss Программирование и базы данных 2 05-08-2010 12:09
[решено] Вопрос тот же как сбросить SID не трогая профиль пользователя? Ferum01 Microsoft Windows NT/2000/2003 2 27-09-2007 16:59




 
Переход