Цитата 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