В Windows существуют так называемые встроенные (BuiltIn) учетные записи, такие как Administrator или Guest. SID-ы этих записей одинаковы в каждом экземпляре Windows вне зависимости от версии ОС. Это дает администратору возможность более-менее централизованно управлять доступом при отсутствии доменной структуры.
SID для локальных учетных записей храниться базе данных диспетчера учетных записей (Security Account Manager, SAM) на локальном компьютере, для доменных — в базе Active Directory.
Whoami
Когда требуется посмотреть SID текущего пользователя, то проще всего воспользоваться утилитой whoami. Для этого надо открыть консоль cmd и выполнить команду:
whoami /user
WMIC
В том случае, когда необходимо узнать SID произвольного пользователя, можно воспользоваться Windows Management Instrumentation (WMI). Один из инструментов для работы с WMI — утилита WMIC. Так например, узнать SID пользователя Kirill можно такой командой:
wmic useraccount where name=′Kirill′ get sid
А можно и наоборот, выяснить имя пользователя по его SID:
wmic useraccount where sid=′S-1-5-21-4178654016-3479515840-607560339-1000′ get name
Дополнительно в WMI-запросе можно указать имя компьютера (для локального) или домена (для доменного пользователя). Например эта команда выведет SID локального администратора:
wmic useraccount where (name=′administrator′ and domain=′%computername%′) get sid
а эта — доменного:
wmic useraccount where (name=′administrator′ and domain=′contoso′) get sid
Для обычного пользователя все также, узнаем SID по имени:
wmic useraccount where (name=′kirill′ and domain=′contoso′) get sid
и имя по SID:
wmic useraccount where (sid=′S-1-5-21-2404695605-4156858507-746700462-1001′ and domain=′contoso′) get name
Примечание. В запросе вместо имени компьютера\домена можно использовать переменные %computername% и %userdomain%.