
Добрый день уважаемые читатели, сегодня мы продолжим изучение Active Directory, а точнее его сущностей. Под сущностью понимается некий объект, в нашем случае это учетная запись пользователя, но их список куда больше. Наша сегодняшняя задача изучить как узнать sid пользователя windows в домене.

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в рунете Pyatilistnik.org. В прошлый раз мы с вами научились запрещать обновления Windows навсегда или же на нужный нам период по ряду причин. Сегодня я хочу с вами поделить одной интересной практической задачей по AD. Я хочу вам показать, как вы можете зная GUID пользователя Active Directory получить его ФИО, email в какой OU Он находится, покажу как все это можно автоматизировать с помощью PowerShell. Думаю будет интересно и полезно.
В среде Windows каждому доменному и локальному пользователю, группе и другим объектам безопасности, присваивается уникальный идентификатор — Security Identifier или SID. Именно SID, а не имя пользователя используется для контроля доступа к различным ресурсам: сетевым каталогам, ключам реестра, объектам файловой системы и т.д. В этой статье мы покажем несколько простых способов узнать SID пользователя и обратной процедуры – определения имени пользователя Windows по его SID.
Гораздо проще воспользоваться утилитой командной строки или скриптом Powershell

Добрый день уважаемые читатели и подписчики, продолжаем с вами изучение возможностей Powershell и Active Directory. Как вы помните у нее все учетные записи пользователей и компьютеров, находятся в базе данных NTDS.dit, все здорово и централизованно. Когда в компании больше одного системного администратора, может получиться ситуация, что в ней накапливается мусор и лишние учетные данные. Все мы люди и какие-то вещи можем забывать, а в какие-то моменты нас могут отвлечь, что приведет, так же к забыванию важной информации. И приходим, мы к тому, что в Actvie Directory накапливаются не активные пользователи (уволенные или забытые), в любом случае, хороший системный администратор должен их выявлять, отключать и дальше по желанию удалять, чем мы и займемся.
Независимо от причины, найти соответствующий SID для имен пользователей действительно легко благодаря wmic-команде – команда доступная из командной строки в большинстве версий Windows.
См. раздел «Как найти SID пользователя в реестре» ниже на странице с инструкциями по сопоставлению имени пользователя с SID с помощью информации в реестре Windows, альтернативного метода использования WMIC.
WMIC команда не существовала до Windows XP, так что вы должны использовать метод реестра в старых версиях Windows.

Выполните следующие простые шаги, чтобы отобразить таблицу имён пользователей и их соответствующие идентификаторы безопасности:
October 24, 2011
wmic useraccount where name='username' get sid
wmic useraccount where name='John' get sid
wmic useraccount where name='%username%' get sid
c:\>whoami /user USER INFORMATION ---------------- User Name SID ============== ============================================== mydomain\wincmd S-1-5-21-7375663-6890924511-1272660413-2944159 c:\>
wmic useraccount where (name='administrator' and domain='%computername%') get name,sid
wmic useraccount where (name='administrator' and domain='%userdomain%') get name,sid
wmic useraccount where sid='S-1-3-12-1234525106-3567804255-30012867-1437' get name
Что такое Sid windows
Давайте для начала с вами выясним определение SID или Security Identifier > это идентификатор безопасности, который используется в семействе операционных систем Windows для идентификации объекта:
- Группа безопасности
- Пользователь
- Компьютер
- Организационная единица
- Принтер
- Папки и файлы
- Принтеры
- Доступ к внешним ресурсам
Давайте разбираться из каких частей состоит Security IDentifier.
Впереди идет версия сида, далее Генеральная область Authority — это ссылка на систему источник, которая его выпустила. В операционных системах Windows версия Security IDentifier сейчас одна и равна она 1, Генеральная область Authority имеет значения 1,3,5, для Microsoft Exchange она 9. Далее в сиде следует 1 или более идентификаторов Sub Authority, а за ними идет RID (Relative IDentificator) локальный для данного Sub Authority номер субъекта безопасности.

По мимо этого, в любой ос Windows существуют встроенные или BuiltIn группы и учетные записи, например администратор или гость, в каждой ос виндоус они имеют одинаковые SID значения. Посмотреть вы их можете в оснастке Управление компьютером.

Сделаны они для того, что если у вас нет Active Directory, то вы могли бы администрировать данные системы с помощью них. Все SID для данных учетных записей находятся в локальной базе данных Windows, под названием Security Account Manager или SAM. Все сиды пользователей домена лежат в базе Active Directory в файле NTDS.dit.
Что такое Sid windows
Давайте для начала с вами выясним определение SID или Security Identifier > это идентификатор безопасности, который используется в семействе операционных систем Windows для идентификации объекта:
- Группа безопасности
- Пользователь
- Компьютер
- Организационная единица
- Принтер
- Папки и файлы
- Принтеры
- Доступ к внешним ресурсам
Давайте разбираться из каких частей состоит Security IDentifier.
Впереди идет версия сида, далее Генеральная область Authority – это ссылка на систему источник, которая его выпустила. В операционных системах Windows версия Security IDentifier сейчас одна и равна она 1, Генеральная область Authority имеет значения 1,3,5, для Microsoft Exchange она 9. Далее в сиде следует 1 или более идентификаторов Sub Authority, а за ними идет RID (Relative IDentificator) локальный для данного Sub Authority номер субъекта безопасности.

По мимо этого, в любой ос Windows существуют встроенные или BuiltIn группы и учетные записи, например администратор или гость, в каждой ос виндоус они имеют одинаковые SID значения. Посмотреть вы их можете в оснастке Управление компьютером.

Сделаны они для того, что если у вас нет Active Directory, то вы могли бы администрировать данные системы с помощью них. Все SID для данных учетных записей находятся в локальной базе данных Windows, под названием Security Account Manager или SAM. Все сиды пользователей домена лежат в базе Active Directory в файле NTDS.dit.
процессе работы с учётными записями пользователям Windows гораздо удобнее иметь дело с осмысленными именами, компьютеры же, привыкшие на языке цифр вместо имён учётных записей оперируют их SID — уникальными идентификаторами безопасности. В Windows SID могут иметь не только пользователи, свои идентификаторы присваиваются группам, доменам, различным системным объектам и т.д.
При выполнении некоторых трюков и тонких настроек вам может понадобиться этот самый SID. Покопавшись в системном реестре, его можно извлечь оттуда вручную, но есть и более простой способ. Если у вас на компьютере завалялся пакет Sysinternals Suite, можете воспользоваться входящей в его состав утилитой PsGetSid, она то как раз и нужна, чтобы вытаскивать SID из системы. А можно извлечь SID и безо всяких сторонних средств. Для этого в Windows есть командная строка и консоль .
Чтобы получить SID текущего пользователя, выполните в запущенной от имени администратора командной строке такую команду:
wmic useraccount where name='%username%' get sid
$objUser = New-Object System.Security.Principal.NTAccount("USERNAME")
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
$strSID.Valueимя

Получить SID локального пользователя

В этом примере SID пользователя — S-1-5-21-1175651296-1316126944-203051354-1005
Если нужно узнать SID текущего пользователя, выполните такую команду:
На PowerShell скрипт, выдающий тот же результат можно реализовать с помощью двух классов SecurityIdentifier и NTAccount.
Получить SID доменного пользователя
Узнать SID текущей доменной учетной записи можно командой:


Если модуль AD для PowerShell отсутствует, через Powershell можно запросить данные из домена так:

Эта же команда в одну строку:
Определить имя пользователя по SID
Чтобы узнать имени учетной записи пользователя по SID (обратная процедура), можно воспользоваться одной из следующих команд:
На PowerShell при помощи модуля AD для Powershell:
Для поиска SID в Powershell нам понадобится модуль Active Directory. Отмечу, что результат почти любого командлета Powershell обращенного к объекту AD будет возвращение его SID.
Если вы выполняете командлеты не на домен контроллере, то вам может понадобится импортировать модель AD:
Import-Module activedirectoryНа домен контроллерах этого делать не надо.
Для получения SID всех пользователей можно выполнить следующий запрос:
Get-ADUser -Filter * | select SIDДля получения идентификатора конкретного пользователя, на моем примере “grigoriev”, выполните:
Get-ADUser -Identity "grigoriev"
В предыдущем случае мы искали пользователей по точному соответствию. Если нам нужно найти, например, пользователей у которых имя начинается на “Admi” сделайте так:
Get-ADUser -Filter {Name -Like "admi*"}Звездочка говорит, что мы ищем учетные записи, которые начинаются на admi и с неизвестным текстом после.
Аналогичный пример будет, если мы хотим узнать имя по SID пользователя. У нас могут быть какие-то цифры, которые можно использовать в следующем примере:
Get-ADUser -Filter * | where SID -Like "*275*"
Как узнать SID локального пользователя в Powershell
Всех пользователей со всеми идентификаторами мы можем получить так:
Get-LocalUser | flЕсли локальных пользователей много, то можно отфильтровать вывод способом похожим на примеры выше. Нужно добавить один параметр:
Get-LocalUser -Name *Admi* | flПолучение в Powershell SID групп
Аналогично получению идентификаторов пользователей, можно узнать идентификаторы групп. Для доменных групп так:
Get-ADGroup -Filter *Для варианта поиска по имени укажите соответствующее имя и ключ:
Get-ADGroup -Filter {Name -like "*RAS*"}
Если вам нужно больше примеров по работе с группами рекомендую почитать про Get-ADGroup в Powershell.
Для получения этих же данных, но по локальным группам в Powershell:
Get-LocalGroup | flТеги:
#powershell
#ad
При создании учётной записи пользователя, группы или присвоению имени компьютеру каждому из этих объектов Windows присваивает уникальный идентификационный идентификатор безопасности, именуемый или просто SID. И так как именно SID позволяет точно идентифицировать пользователя, для доступа к различным внутренним и внешним ресурсам Windows использует его.
Исключение составляют SIDы встроенных учётных записей, уже имеющихся в Windows — скрытого администратора и гостя. Независимо от версии системы, эти идентификаторы одинаковы во всех экземплярах Windows. Сие сделано специально, дабы администратор имел возможность централизовано управлять доступом при отсутствии доменной структуры.
При выполнении различных тонких настроек, применении твиков подобных тому действий у вас может возникнуть необходимость узнать SID пользователя по его имени. Сделать это можно разными путями, и здесь мы рассмотрим самые распространённые. Если нужно посмотреть SID текущего пользователя, самым лучшим решением будет использование консольной утилиты whoami.
Откройте командную строку и выполните в ней такую команду:
whoami /user
Если же вам нужно получить SID другого юзера, используем такую конструкцию с другой консольной утилитой wmic:
wmic useraccount where name='Злой кролик' get sid
Аналогичным образом можно узнать имя пользователя, зная его SID, указав его в качестве значения параметра name. По такому же принципу строятся другие запросы, например, в запрос можно вставить имя локального компьютера. Так можно получить SID администратора локального компьютера, используя оператор и указав в качестве значения переменную , на место которой подставится имя компьютера.
wmic useraccount where (name='Администратор' and domain='%computername%') get sidС задачей извлечения SID пользователя прекрасно справляется , только его синтаксис может показаться не очень удобным.
Вот, этой командой мы получаем SID пользователя «Злой кролик»:
Get-WmiObject -Class win32_userAccount -Filter "name='Злой кролик'"
А можно и так, добавив в список фильтров имя компьютера (та же переменная %computername%):
(Get-WmiObject -Class win32_userAccount -Filter "name='Злой кролик' and domain='%computername%'").SID
Будьте внимательны, следите за кавычками. Не используйте наклонные или фигурные кавычки, все они должны быть прямыми.
Есть также и сторонние утилиты, позволяющие получить SID по имени и наоборот, например, PsGetSid, но раз с задачей справляются штатные инструменты самой Windows, приводить пример их использования в данном случае нам показалось излишним.
160 people found this article helpful
Updated on January 15, 2022
What to Know
- In Command Prompt, type wmic useraccount get name,sid and press Enter.
- You can also determine a user’s SID by looking through the ProfileImagePath values in each S-1-5-21 prefixed SID listed under:
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
Open Terminal (Windows 11), or open Command Prompt in older Windows versions.
If you don’t see Command Prompt there, type cmd into the search bar in the Start menu, and select Command Prompt when you see it.
wmic useraccount get name,sidwmic useraccount where name="USER" get sidIf you get an error that the wmic command isn’t recognized, change the working directory to be C:\Windows\System32\wbem\ and try again. You can do that with the cd (change directory) command.
Lifewire / Emily Mendoza
wmic useraccount where sid="S-1-5-21-992878714-4041223874-2616370337-1001" get name
Namejonfi
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
How do I find my own SID quickly?
Thanks for letting us know!
Как преобразовывать ObjectGUID в Active Directory
Для начала я покажу вам, где искать GUID пользователя. Для этой задачи у меня есть тестовый пользователь Барбоскин Геннадий. Вас нужно запросить у Active Directory его свойства, для этого откройте оболочку PowerShell ISE и введите:
В результате вы получите длинный код ObjectGUID, это по сути и есть GUID пользователя, так же тут и SID увидите.

Простой пример преобразования GUID
$guid = “d6d869d3-f5c6-4c5e-ad6a-28e8ceba2c27”
В результате вы получили информацию, о DistinguishedName, удобно. Так вы можете подставлять любое из свойств или не одно.

Усложним немного конструкцию и произведем чтение из файла со списком GUID.
foreach ($guid in (Get-Content “C:\Temp\guid.txt”))
$dn = $null
$dn = (Get-ADObject -Identity $guid -Server “dc01.root.pyatilistnik.org:3268” -Properties DistinguishedName).DistinguishedName
Обратите внимание, что вы сразу получите список прочитанных из файла GUID пользователя.

В результате у вас будет экспортирован текстовый файл со списком DistinguishedName.

А теперь давайте еще получим дополнительные данные:
- DistinguishedName
- ФИО
- Отдел
- Статус учетной записи Активна/Выключена
foreach ($guid in (Get-Content “C:\Temp\guid.txt”))
В результате у вас быть экспортирован CSV файл.

Теперь вам остается разделить CSV файл на столбцы, чтобы привести данные в удобную таблицу.

На этом у меня все. Если у вас еще остались вопросы, как можно из GUID пользователя получать разную информацию, то пишите в комментариях. С вами был Иван Сёмин, автор и создатель IT блога Pyatilistnik.org.
Получить SID локального пользователя
В этом примере SID пользователя — S-1-5-21-1175651296-1316126944-203051354-1005
Если нужно узнать SID текущего пользователя, выполните такую команду:
На PowerShell скрипт, выдающий тот же результат можно реализовать с помощью двух классов SecurityIdentifier и NTAccount.
Определить имя пользователя по SID
Чтобы узнать имени учетной записи пользователя по SID (обратная процедура), можно воспользоваться одной из следующих команд:
На PowerShell при помощи модуля AD для Powershell:
Получить SID доменного пользователя
Узнать SID текущей доменной учетной записи можно командой:
Если модуль AD для PowerShell отсутствует, через Powershell можно запросить данные из домена так:
Эта же команда в одну строку:
Узнать SID пользователя или группы в домене AD по имени
Вы можете узнать SID текущей доменной учетной записи командой:
Узнать SID доменного пользователя можно с помощью WMIC. В этом случае в команде нужно указать имя домена:
Вы можете получить SID группы AD с помощью другого командлета — Get-ADGroup:

Если на вашем компьютере не установлен модуль AD для PowerShell, вы можете получить SID пользователя с помощью упомянутых ранее классов .Net:
Эта же команда PowerShell в одну строку:
Steps
-
-
-
Click . Now you’ll see a terminal window displaying the command prompt.
-
- If you know the person’s username, use this command instead: wmic useraccount where name="USER" get sid (but replace USER with the username).[1]
- If you know the person’s username, use this command instead: wmic useraccount where name="USER" get sid (but replace USER with the username).[1]
-
Add New Question
What is a Windows SID?

Ask a Question
200 characters left
Include your email address to get a message when this question is answered.
Thanks for submitting a tip for review!
Как найти SID пользователя с WMIC
Вероятно, потребуется всего лишь минута, а может быть и меньше, чтобы найти SID пользователя в Windows через WMIC:
Откройте командную строку.
Вам не нужно открывать командную строку с повышенными правами, чтобы это работало. Для некоторых команд Windows это требуется, но в приведенном ниже примере команды WMIC вы можете открыть обычную неадминистративную командную строку.
Введите в командной строке следующую команду в точности так, как показано здесь, включая пробелы или их отсутствие:

Если вы получаете сообщение об ошибке, что команда wmic не распознается, измените рабочий каталог на C:\Windows\System32\wbem\ и повторите попытку. Вы можете сделать это с помощью команды cd (изменить каталог).
Вы должны увидеть таблицу, отображаемую в командной строке. Это список всех учетных записей пользователя в Windows, с указанием имени пользователя и соответствующего SID учетной записи.
Теперь, когда вы уверены, что определенное имя пользователя соответствует определенному SID, вы можете вносить в реестр любые изменения, которые вам нужны, или делать то, для чего вам нужна эта информация.
Если у вас есть случай, когда вам нужно найти имя пользователя, но всё, что у вас есть, – это идентификатор безопасности, вы можете «отменить» команду следующим образом (просто замените этот SID на соответствующий):
Вы также можете определить SID пользователя, просматривая значения ProfileImagePath в каждом S-1-5-21 с префиксом SID, перечисленных под этим ключом:
В значении ProfileImagePath в каждом ключе реестра с именем SID указывается каталог профиля, в который входит имя пользователя.

Как узнать SID пользователя по имени и наоборот
В среде Windows каждому доменному и локальному пользователю, группе и другим объектам безопасности, присваивается уникальный идентификатор — Security Identifier или SID. Именно SID, а не имя пользователя используется для контроля доступа к различным ресурсам: сетевым каталогам, ключам реестра, объектам файловой системы и т.д. В этой статье мы покажем несколько простых способов узнать SID пользователя и обратной процедуры – определения имени пользователя Windows по его SID.
Гораздо проще воспользоваться утилитой командной строки или скриптом Powershell
База Security Account Manager
Давайте посмотрим за, что отвечает Security Account Manager:
- Сопоставление имен с SID и обратно, некий такой DNS для учетных записей
- Проверяет пароли, авторизовывает (принимает участие в процессе входа пользователей в ОС)
- Ведет статистику, кто последний входил, количество входов, кто сколько раз ввел не тот пароль, короче аудит
- Контролирует политика паролей учетных записей, в случае чего может блокировать учетные записи.
- Ведет учет, кто в какие группы входит
- Производит защиты самого себя
- Дает программный интерфейс для управления базой учетных записей
Хранится SAM (Security Account Manager) в реестре Windows. Как открыть реестр windows, я уже описывал не однократно, переходим в ветку.
Если вы кликните правым кликом и из контекстного меню выберете Разрешения, то обнаружите, что права доступа есть только у системы, а вот у администраторов локальной станции их нет, но при желании можно их получить, это лишний механизм защиты, так как можно вытащить хэши учетных записей и попытаться их взломать.

SAM это библиотека samsrv.dll, которая работает в Windows в виде процесса lsass.exe, увидеть это можно в диспетчере задач.

1 способ узнать sid пользователя, команда WMIC
На выходе вы получите список локальных пользователей.

Я вам это уже рассказывал в заметке Как узнать имена учетных записей Администраторов домена. На выходе получите, что то такое

Как видите все работает.

Еще с помощью WMI вы можете реализовать вот, что укажите имя компьютера (для локального) или домена (для доменного пользователя). Ниже пример получения SID локальной рабочей станции
Для доменной структуры

2 способ узнать sid пользователя, команда Whoami
Тоже довольно старенькая команда из cmd.exe. Вводим

Если ввести Whoami /logonid, то можно получить logonid, выглядит он вот так S-1-5-5-0-595920
Если ввести ключ /all, то вы увидите, все sid локальных (bultin) групп и пользователей

Так же вы увидите сведения о привилегиях.

На мой взгляд, данный метод, немного проще первого, так как требует ввода меньшего количества ключей.
3 способ узнать sid пользователя, ADUC и ADSIedit
В третьем способе мы воспользуемся средствами графического интерфейса, а точнее самой оснастке Active Directory пользователи и компьютеры. В ней есть встроенный механизм называется редактор атрибутов Active Directory. Открываем вкладку Вид и ставим галку Дополнительные параметры, да забыл отметить нужно быть членом группы Администраторы схемы.

После чего заходим в свойства учетной записи, вкладка Редактор атрибутов и находим там поле objectSid.

Так же SID можно посмотреть и во встроенной оснастке ADSIedit, подключаетесь там к контексту именования имен и заходите в свойства нужной учетной записи.

Да чуть не забыл в Windows Server 2012 R2 есть такое средство как Центр администрирования Active Directory, ищите там нужную учетную запись и в ней находите пункт SID.

4 способ узнать sid пользователя, утилита PsGetSid
Есть такая замечательная утилита от Microsoft од названием PsGetSid.
Когда вы скачаете и разархивируете файл, вы получите папку с большим набором утилит, среди них будет PsGetSid.

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

5 способ узнать sid пользователя, PowerShell и System.Security.Principal.NTAccount
Пятым методом будет использование в powershell класса System.Security.Principal.NTAccount. Для домена Active Directory.

Для локального пользователя команда будет такой.
Обратная ситуация получаем по SID имя пользователя
6 способ узнать sid пользователя, Get-ADUser

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

Команда вернула нам SID указанного пользователя — S-1-5-21-1175651296-1316126944-203051354-1005.
Если нужно узнать SID текущего пользователя (под которым выполняется команда), используйте такую команду:
С помощью двух .NET классов System.Security.Principal.SecurityIdentifier и System.Security.Principal.NTAccount вы можете получить SID пользователя с помощью PowerShell:
Как массово определить SID пользователя

В этом нам поможет скрипт PowerShell. Откройте ISE.
New-Object PSObject -Property $Result
>
На выходе будет удобный список, при желании можно все экспортировать в csv или txt файл.
Определить имя пользователя по SID
Чтобы узнать имени учетной записи пользователя по SID (обратная процедура), можно воспользоваться одной из следующих команд:
На PowerShell при помощи модуля AD для Powershell:

Попробуйте наши услуги обслуживания и получите третий месяц обслуживания в подарок!
Как найти устаревшие учетные записи пользователей
Через оснастку ADUC
В прошлый раз я вам уже приводил пример использования оснастки Active Directory Пользователи и компьютеры, через которую мы искали пропавшие компьютеры в локальной сети, которые не появлялись уже месяц. Сейчас сделаем все то же самое и с пользовательскими учетными записями. У меня AD на Windows Server 2012 R2, открываем ADUC, для этого нажмите WIN+R и введите dsa.msc.

Далее переходите в пункт Сохраненные запросы, данный пункт появился еще в 2008 версии. Щелкаем по нему правым кликом и выбираем Создать > Запрос.

В открывшейся форме запроса задайте:
- Имя запроса > у меня это потерявшиеся пользователи
- Описание при необходимости
- Корень запроса > тут можно оставить весь домен, либо же конкретизировать на нужном OU
После чего жмем кнопку запрос.

На вкладке пользователи видим пункт “Число дней со времени последнего входа в систему” я для примера поставил 60 дней.

В итоге вы получите нужный вам список, неактивных учетных записей сотрудников.

Через оснастку powershell
Все то же самое можно сделать и через Powershell. Сразу приведу код, задачей которого идет поиск неактивных пользователей, для этого я выбрал период 45 дней, отключение данных пользователей и перемещение в специально отведенную для этого OU.
- В первой строке вы объявляете переменную, в которой задаете срок поиска
- Создаем переменную и делаем выборку по последнему времени логина
- Перемещаем пользователей

- Делаем отчет в файл

Еще полезные вещи по работе с пользователем. Перед использованием ниже команд, нужно загрузить модуль Active Directory, через команду

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

Более детально по свойствам можно посмотреть вот такой строкой.

Через такую конструкцию вы можете выводить конкретные поля.
Как видите способов получения списка неактивных пользователей Active Directory хватает, так, что выбирайте, то что вам по душе.
Получить SID доменного пользователя
Узнать SID текущей доменной учетной записи можно командой:
Если модуль AD для PowerShell отсутствует, через Powershell можно запросить данные из домена так:
Эта же команда в одну строку:
About This Article
Did this summary help you?
Thanks to all authors for creating a page that has been read 271,252 times.
Что можно узнать по GUID пользователя Active Directory?
О том, что такое GUID я подробно вам рассказывал и много уже, где с ним встречались, только на разных сущностях. Напомню GUID (глобальный уникальный идентификатор) – это термин, используемый Microsoft для числа, которое ее программа генерирует, чтобы создать уникальную идентичность для объекта.

Попросили для каждой записи найти соответствующие поля:
- DistinguishedName
- Name
- Department
- Title
- Enabled
Получить SID локального пользователя
В этом примере SID пользователя — S-1-5-21-1175651296-1316126944-203051354-1005
Если нужно узнать SID текущего пользователя, выполните такую команду:
На PowerShell скрипт, выдающий тот же результат можно реализовать с помощью двух классов SecurityIdentifier и NTAccount.
База Security Account Manager
Давайте посмотрим за, что отвечает Security Account Manager:
- Сопоставление имен с SID и обратно, некий такой DNS для учетных записей
- Проверяет пароли, авторизовывает (принимает участие в процессе входа пользователей в ОС)
- Ведет статистику, кто последний входил, количество входов, кто сколько раз ввел не тот пароль, короче аудит
- Контролирует политика паролей учетных записей, в случае чего может блокировать учетные записи.
- Ведет учет, кто в какие группы входит
- Производит защиты самого себя
- Дает программный интерфейс для управления базой учетных записей
Хранится SAM (Security Account Manager) в реестре Windows. Как открыть реестр windows, я уже описывал не однократно, переходим в ветку.
Если вы кликните правым кликом и из контекстного меню выберете Разрешения, то обнаружите, что права доступа есть только у системы, а вот у администраторов локальной станции их нет, но при желании можно их получить, это лишний механизм защиты, так как можно вытащить хэши учетных записей и попытаться их взломать.

SAM это библиотека samsrv.dll, которая работает в Windows в виде процесса lsass.exe, увидеть это можно в диспетчере задач.

1 способ узнать sid пользователя, команда WMIC
На выходе вы получите список локальных пользователей.

Я вам это уже рассказывал в заметке Как узнать имена учетных записей Администраторов домена. На выходе получите, что то такое

Как видите все работает.

Еще с помощью WMI вы можете реализовать вот, что укажите имя компьютера (для локального) или домена (для доменного пользователя). Ниже пример получения SID локальной рабочей станции
Для доменной структуры

2 способ узнать sid пользователя, команда Whoami
Тоже довольно старенькая команда из cmd.exe. Вводим

Если ввести Whoami /logonid, то можно получить logonid, выглядит он вот так S-1-5-5-0-595920
Если ввести ключ /all, то вы увидите, все sid локальных (bultin) групп и пользователей

Так же вы увидите сведения о привилегиях.

На мой взгляд, данный метод, немного проще первого, так как требует ввода меньшего количества ключей.
3 способ узнать sid пользователя, ADUC и ADSIedit
В третьем способе мы воспользуемся средствами графического интерфейса, а точнее самой оснастке Active Directory пользователи и компьютеры. В ней есть встроенный механизм называется редактор атрибутов Active Directory. Открываем вкладку Вид и ставим галку Дополнительные параметры, да забыл отметить нужно быть членом группы Администраторы схемы.

После чего заходим в свойства учетной записи, вкладка Редактор атрибутов и находим там поле objectSid.

Так же SID можно посмотреть и во встроенной оснастке ADSIedit, подключаетесь там к контексту именования имен и заходите в свойства нужной учетной записи.

Да чуть не забыл в Windows Server 2012 R2 есть такое средство как Центр администрирования Active Directory, ищите там нужную учетную запись и в ней находите пункт SID.

4 способ узнать sid пользователя, утилита PsGetSid
Есть такая замечательная утилита от Microsoft од названием PsGetSid.
Когда вы скачаете и разархивируете файл, вы получите папку с большим набором утилит, среди них будет PsGetSid.

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

5 способ узнать sid пользователя, PowerShell и System.Security.Principal.NTAccount
Пятым методом будет использование в powershell класса System.Security.Principal.NTAccount. Для домена Active Directory.

Для локального пользователя команда будет такой.
6 способ узнать sid пользователя, Get-ADUser
Как посмотреть доменных пользователей windows

Добрый день уважаемые читатели, сегодня мы продолжим изучение Active Directory, а точнее его сущностей. Под сущностью понимается некий объект, в нашем случае это учетная запись пользователя, но их список куда больше. Наша сегодняшняя задача изучить как узнать sid пользователя windows в домене.
Как узнать SID пользователя или группы AD по имени и наоборот?
В среде Windows каждому доменному и локальному пользователю, группе и другим объектам безопасности, присваивается уникальный идентификатор — Security Identifier или SID. Именно SID, а не имя пользователя используется для контроля доступа к различным ресурсам: сетевым папкам, ключам реестра, объектам файловой системы, принтерам и т.д. В этой статье мы покажем несколько простых способов узнать SID пользователя или группы (локальных или из Active Directory), и обратную процедуру – определение имени пользователя или группы Windows по известному SID.
Получение учетки по SID:
Как массово определить SID пользователя

В этом нам поможет скрипт PowerShell. Откройте ISE.
New-Object PSObject -Property $Result
}
На выходе будет удобный список, при желании можно все экспортировать в csv или txt файл.

На этом у меня все с вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
Как узнать имя учетной записи пользователя или группы по SID?
Чтобы узнать имя учетной записи пользователя по SID (обратная процедура), можно воспользоваться одной из следующих команд:
На PowerShell получить имя пользователя по его SID можно с помощью модуля AD для PowerShell:
Чтобы найти имя доменной группы по известному SID используйте команду:
Get-ADGroup -Identity S-1-5-21-247647651-3952524288-2944781117-23711116

Также можно узнать SD группу и пользователя с помощью встроенных классов PowerShell (без дополнительных модулей):
Поиск объектов в Active Directory по SID
В нашем случае объект AD, который имеет данный SID, является компьютером (objectClass).




