Предыстория:
Сюжет,
наверное, знаком многим сисадминам и не только...
Звонят,
пишут пользователи и говорят, что на сервере пропала какая-то папка, а возможно
и – цать штук, причем пропала сама собой, никто не трогал.
В
чудеса с детства не верю, и начинаются неординарные поиски пропавшей папки.
Алгоритм как правило простейший - для начала смотрим на наличие скрытых файлов
в каталоге, где жила папка, проходим там прогой а-ля для восстановления данных и если ничего не
находится, то скорее всего и не удалялось, а просто перемещено... и возможно в
корзину. И другие подобные действия (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>
Удобно однако.