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

Показать сообщение отдельно
MKN MKN вне форума

Ветеран


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

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


Цитата Otlanta:
нужно получить имя группы администраторов »
Можно командно, как рассказано здесь : http://forum.oszone.net/thread-136097.html
или, зная SID - Administrators S-1-5-32-544 , получить имя с помощью API (LookupAccountSid + ещё куча всего), а лучше с помощью http://nsis.sourceforge.net/UserMgr_plug-in
или переконвертировать SID с помощью vbs :
http://www.thescriptlibrary.com/Defa...ID+to+Username

Если кто захочет заморочиться с API, то код приблизительно такой и хорошо бы его "причесать" и под конкретику и для универсальности :
Код: Выделить весь код
# allocate SID_IDENTIFIER_AUTHORITY
System::Call "*(&i1 0, &i4 0, &i1 5) i.r0"
# allocate SID  http://msdn.microsoft.com/en-us/library/windows/desktop/aa375213(v=vs.85).aspx
System::Call "advapi32::AllocateAndInitializeSid(i r0, i 1, i 20 , i 0, i 0, i 0, i 0, i 0, i 0, i 0, *i .r1)"
;System::Call "advapi32::AllocateAndInitializeSid(i r0, i 2, i 32, i 545, i 0, i 0, i 0, i 0, i 0, i 0, *i .r1)"
# free SID_IDENTIFIER_AUTHORITY
System::Free $0
# debug, see that the right SID was created
System::Call advapi32::ConvertSidToStringSid(ir1,*t.R0)
DetailPrint $R0
DetailPrint $2
# use SID to look-up account name  *  LookupAccountSid получает имя пользователя (группы) по заданному SID, а так же тип SID
 /*SidTypeUser = 1; // SID пользователя
 SidTypeGroup = 2; // группы
 SidTypeDomain = 3; // домена
 SidTypeAlias = 4; // встроенной группы
 SidTypeWellKnownGroup = 5; // стандартной группы
 SidTypeDeletedAccount = 6; // удаленной записи
 SidTypeInvalid = 7; // неверный SID
 SidTypeUnknown = 8; // неизвестный SID
 SidTypeComputer = 9; // SID компьютера
 SidTypeLabel = 10; // Обязательный SID ярлыка целостности*/

StrCpy $R0 ${NSIS_MAX_STRLEN}
System::Call "advapi32::LookupAccountSid(i 0, i r1, t .r0, *i R0, t .r2, *i R0, *i .r3)"
# free SID
System::Call "advapi32::FreeSid(i r1)"
# print result
DetailPrint $0
DetailPrint $2
DetailPrint $R1

Последний раз редактировалось MKN, 18-06-2014 в 16:29.


Отправлено: 13:03, 18-06-2014 | #1215