4 мая 2018 г.

Как узнать SID пользователя или определить его имя

vlsdtv | 12:58 |

Предыстория:

Сюжет, наверное, знаком многим сисадминам и не только...
Звонят, пишут пользователи и говорят, что на сервере пропала какая-то папка, а возможно и – цать штук, причем пропала сама собой, никто не трогал.
В чудеса с детства не верю, и начинаются неординарные поиски пропавшей папки. Алгоритм как правило простейший - для начала смотрим на наличие скрытых файлов в каталоге, где жила папка, проходим там прогой а-ля для восстановления данных и если ничего не находится, то скорее всего и не удалялось, а просто перемещено... и возможно в корзину. И другие подобные действия (backup еще никто не отменял).
Сопричастных лиц как правило ограниченное количество. Можно порыться в корзинах пользователей порыться тем же Total Commander, включив отображение системных файлов. Корзины пользователей имеют уникальный идентификатор и лежат в общем каталоге $RECYCLE.BIN на дисках. Уже теплее...

Итак – к чему все это.
В Windows, любой учетной записи пользователя присваивается уникальный идентификатор безопасности SID (Security Identifier). По сути, ОС оперирует именно SID-ами, а не именами пользователей.
Пример:
 Если назначали права доступа к папкам или файлам разным пользователям, а потом какого-то пользователя удаляли из системы, то могли видеть оставшиеся SID в свойствах ресурса.
Не все SID уникальны, и у встроенных учетных записей (Администратор, Гость), они постоянны. SID-ы локальных учёток хранятся в базе данных диспетчера учетных записей SAM (Security Account Manager), для доменных, соответственно в AD.

Как узнать SID пользователя или определить его имя?

Проще всего посмотреть SID текущего пользователя с помощью утилиты whoami. Для этого в cmd:
C:\Users\vvsoldatov.INKAKHRAN>whoami /user

Сведения о пользователе
----------------
Пользователь         SID
==================== ==============================================
inkakhran\vvsoldatov S-1-5-21-2417822508-1771574648-3096115848-1838
C:\Users\vvsoldatov.INKAKHRAN>


Это я :), но это не интересно
Интереснее всего узнать SID произвольного пользователя. Для этого нужна утилита WMIC из состава WMI.
Посмотрим SID пользователя MOSokolov:
C:\Users\vvsoldatov.INKAKHRAN>wmic useraccount where name='MOSokolov' get sid

SID
S-1-5-21-2417822508-1771574648-3096115848-12650
C:\Users\vvsoldatov.INKAKHRAN>

Ну и обратно - определить имя пользователя по SID:
C:\Users\vvsoldatov.INKAKHRAN>wmic useraccount where sid='S-1-5-21-2417822508-17
71574648-3096115848-12650' get name
Name
MOSokolov
C:\Users\vvsoldatov.INKAKHRAN>

Удобно однако.

Комментариев нет :

Отправить комментарий

Search