Dirk Diggler
Цитата:
Как с пом. Autoit получить SID пользователя или группы? Я сделал функцию обработки файлового вывода от psgetsid.exe
|
Столкнулся с подобной проблемой при написании скрипта для сохранения/восстановления настроек Outlook Express (нужен был SID текущего пользователя).
Решил похожим методом (т.е. слегка раком

), только без посторонних утилит и без обработки потоков с пом. соотв. ф-ций в последних бетах АвтоИт-а (
RegRead здесь не катит по причине запрета на чтение требуемой ветки):
Код:

Func findsid()
Local $file, $sid
RunWait(@ComSpec & ' /c for /F "tokens=5 delims=\" %j in ('&Chr(39)&'reg query "HKEY_CURRENT_USER\Software\Microsoft\Protected Storage System Provider"'&Chr(39)&') do (echo %j> %temp%\sid.tmp)','',@SW_HIDE)
$file = FileOpen(@TempDir&'\sid.tmp',0)
If $file = -1 Then
SetError(1)
Return(0)
EndIf
$sid=FileReadLine($file,1)
FileClose($file)
FileDelete(@TempDir&'\sid.tmp')
Return $sid
EndFunc
А вообще, SID-ы пользователей записаны в ветке
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList; SID-ы групп -
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\GroupMembership и
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy\GroupMembership. Только не понятно, как их сопоставить с названиями групп (за исключением стандартных групп, вроде S-1-1-0 /Все/, S-1-5-544 /Администраторы/, S-1-5-545 /Пользователи/ и т.п.). В справочнике Джерри Хонейкатта по реестру WinXP, к сожалению, подробной инфы по рассматриваемой теме нет. Т.о., использованная тобой утилка Марка Руссиновича является вполне приемлемым ответом на твой же вопрос, если нет желания копать глубже или переписывать эту же утилку на АвтоИт с пом.
DllCall-ов, вооружившись знанием WinAPI.
Цитата:
но она слишком медленно работает
|
И как это можно исправить, если ты не приводишь код?