Как с помощью командной строки или PowerShell получить SID пользователя

При создании учётной записи пользователя, группы или присвоению имени компьютеру каждому из этих объектов Windows присваивает уникальный идентификационный идентификатор безопасности, именуемый Security Identifier или просто SID. И так как именно SID позволяет точно идентифицировать пользователя, для доступа к различным внутренним и внешним ресурсам Windows использует его.

Исключение составляют SIDы встроенных учётных записей, уже имеющихся в Windows — скрытого администратора и гостя. Независимо от версии системы, эти идентификаторы одинаковы во всех экземплярах Windows. Сие сделано специально, дабы администратор имел возможность централизовано управлять доступом при отсутствии доменной структуры.

При выполнении различных тонких настроек, применении твиков подобных тому действий у вас может возникнуть необходимость узнать SID пользователя по его имени. Сделать это можно разными путями, и здесь мы рассмотрим самые распространённые. Если нужно посмотреть SID текущего пользователя, самым лучшим решением будет использование консольной утилиты whoami.

Откройте командную строку и выполните в ней такую команду:

whoami /user

Whoami

Если же вам нужно получить SID другого юзера, используем такую конструкцию с другой консольной утилитой wmic:

wmic useraccount where name='Злой кролик' get sid

Wmic

Аналогичным образом можно узнать имя пользователя, зная его SID, указав его в качестве значения параметра name. По такому же принципу строятся другие запросы, например, в запрос можно вставить имя локального компьютера. Так можно получить SID администратора локального компьютера, используя оператор (равно =) и указав в качестве значения переменную %computername%, на место которой подставится имя компьютера.

wmic useraccount where (name='Администратор' and domain='%computername%') get sid

С задачей извлечения SID пользователя прекрасно справляется PowerShell, только его синтаксис может показаться не очень удобным.

Вот, этой командой мы получаем SID пользователя «Злой кролик»:

Get-WmiObject -Class win32_userAccount -Filter "name='Злой кролик'"

Get-WmiObject

А можно и так, добавив в список фильтров имя компьютера (та же переменная %computername%):

(Get-WmiObject -Class win32_userAccount -Filter "name='Злой кролик' and domain='%computername%'").SID

PowerShell

Будьте внимательны, следите за кавычками. Не используйте наклонные или фигурные кавычки, все они должны быть прямыми.

Есть также и сторонние утилиты, позволяющие получить SID по имени и наоборот, например, PsGetSid, но раз с задачей справляются штатные инструменты самой Windows, приводить пример их использования в данном случае нам показалось излишним.

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

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

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

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