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

В процессе работы с учётными записями пользователям Windows гораздо удобнее иметь дело с осмысленными именами, компьютеры же, привыкшие «мыслить» на языке цифр вместо имён учётных записей оперируют их SID — уникальными идентификаторами безопасности. В Windows SID могут иметь не только пользователи, свои идентификаторы присваиваются группам, доменам, различным системным объектам и т.д.

При выполнении некоторых трюков и тонких настроек вам может понадобиться этот самый SID. Покопавшись в системном реестре, его можно извлечь оттуда вручную, но есть и более простой способ. Если у вас на компьютере завалялся пакет Sysinternals Suite, можете воспользоваться входящей в его состав утилитой PsGetSid, она то как раз и нужна, чтобы вытаскивать SID из системы. А можно извлечь SID и безо всяких сторонних средств. Для этого в Windows есть командная строка CMD и консоль PowerShell.

Чтобы получить SID текущего пользователя, выполните в запущенной от имени администратора командной строке такую команду:

wmic useraccount where name='%username%' get sid

Этой же командой можно извлечь SID любого локального пользователя, подставив на место переменной %username% его имя.

Получить SID

Аналогичный результат можно получить с помощью консоли PowerShell, только на этот раз придётся выполнить целых три команды, заменив предварительно USERNAME именем реального пользователя. Вот так:

$objUser = New-Object System.Security.Principal.NTAccount("USERNAME")
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
$strSID.Valueимя

PowerShell

Точно также просто можно узнать идентификатор безопасности текущего доменного пользователя. В командной строке он извлекается командой whoami /user

В командной строке

А вот как быть, если вам нужно проделать всё наоборот, то есть по имеющемуся SID узнать имя пользователя? И тут всё очень просто. Для этого в запущенной с повышенными привилегиями командной строке выполняем команду wmic useraccount where sid='S-XXXXXXXXX' get name, где S-XXXXXXXXX — известный вам идентификатор.

Оцените Статью:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *