Windows show user sid

Windows show user sid

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

Что такое Sid windows

Давайте для начала с вами выясним определение SID или Security Identifier > это идентификатор безопасности, который используется в семействе операционных систем Windows для идентификации объекта:

  • Группа безопасности
  • Пользователь
  • Компьютер
  • Организационная единица
  • Принтер

SID во время создания объекта, присваивается ему , в домене Active Directory за это отвечает мастер роль RID. В рамках домена, каждый SID должен быть уникален, в отличии от имени, так как Ивановых Иванов Ивановичей, может быть много, а вот отличаться они будут логином и SID. Для операционной системы Windows, важнее сиды объектов, она же их использует и для контроля прав доступа на различные корпоративные ресурсы:

  • Папки и файлы
  • Принтеры
  • Доступ к внешним ресурсам

Структура SID

Давайте разбираться из каких частей состоит 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.

База Security Account Manager

Давайте посмотрим за, что отвечает Security Account Manager:

  • Сопоставление имен с SID и обратно, некий такой DNS для учетных записей
  • Проверяет пароли, авторизовывает (принимает участие в процессе входа пользователей в ОС)
  • Ведет статистику, кто последний входил, количество входов, кто сколько раз ввел не тот пароль, короче аудит
  • Контролирует политика паролей учетных записей, в случае чего может блокировать учетные записи.
  • Ведет учет, кто в какие группы входит
  • Производит защиты самого себя
  • Дает программный интерфейс для управления базой учетных записей

Хранится SAM (Security Account Manager) в реестре Windows. Как открыть реестр windows, я уже описывал не однократно, переходим в ветку.

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

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

1 способ узнать sid пользователя, команда WMIC

Для примера я все буду показывать на своей рабочей станции с установленной в ней Windows Server 2012 R2, станция принадлежит домену Active Directory. Первый метод, это использование старого, доброго WMIC инструментария (Windows Management Instrumentation). Все, что вам нужно, это знать имя пользователя, точнее его логин. Чтобы посмотреть список локальных пользователей введите команду

На выходе вы получите список локальных пользователей.

Чтобы выяснить все логины доменных пользователей вводим команду

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

Читайте также:  Device manager windows server core

Далее зная логин все просто вводим

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

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

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

Для доменной структуры

Получить логин по 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 пользователя по его имени и наоборот, умеет получать как локальных пользователей, так и доменных.

Вводим команду psgetsid имя компьютера\логин учетки

и наоборот, выясним имя по SID:

5 способ узнать sid пользователя, PowerShell и System.Security.Principal.NTAccount

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

Для локального пользователя команда будет такой.

6 способ узнать sid пользователя, Get-ADUser

Снова воспользуемся командлетами powershell Get-ADUser. вводим команду для получения SID доменного пользователя.

получить наоборот логин по sid

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

Все описанные выше методы хороши, когда вам нужно найти SID для одного или двух пользователей, а как быть если у вас это пачка логинов. Например мне это нужно было при предоставлении прав. Предположим, что у меня есть текстовый файл со списком логинов, каждый на новой строке. Мне нужно для каждого определить его Security Identifier.

В этом нам поможет скрипт PowerShell. Откройте ISE.

foreach ($line in (Get-Content $users_file))
<
$username = ($Line -split «\\»)[1]
$user = Get-ADUser $username -Server «DC4.root.pyatilistnik.org»

$Result = [ordered]@ <
user = $line
SID = $user.SID
>

New-Object PSObject -Property $Result
>

На выходе будет удобный список, при желании можно все экспортировать в csv или txt файл.

SID пользователя в Windows: Что это такое и как его узнать

Вы наверняка пытались управлять разрешениями определенных файлов, папок или часто просматриваете реестр Windows, то может показаться, что вы видели некоторые строковые значения типа S-1-5-21-281723897-98365329832-7382047462- 600. Эти значения известны как идентификаторы безопасности или SID. Давайте разберем, что такое SID пользователя в Windows 10 и какие способы его узнать.

Что такое SID пользователя в Windows?

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

Как узнать SID пользователя в Windows с помощью cmd

Одним из самых быстрых способов узнать идентификатор пользователя SID в Windows 10, — это воспользоваться командной строкой. Откройте командную строку и введите ниже команды, которые соответствуют вашим требованиям.

  1. Имя SID используемое в настоящее время: введите команду whoami /user и нажмите Enter.
  2. Имя SID определенного пользователя: введите в командую строку wmic useraccount where name=»хомячок» get name,sid . Где «хомячок» — это фактическое имя пользователя.
  3. Все SID пользователей в Windows: введите wmic useraccount get name,sid .
Читайте также:  Приложение нтв плюс для windows

Get SID of user

In Windows environment, each user is assigned a unique identifier called Security ID or SID, which is used to control access to various resources like Files, Registry keys, network shares etc. We can obtain SID of a user through WMIC USERACCOUNT command. Below you can find syntax and examples for the same.

Get SID of a local user

For example, to get the SID for a local user with the login name ‘John’, the command would be as below

Get SID for current logged in user

To retrieve the SID for current logged in user we can run the below command. This does not require you to specify the user name in the command. This can be used in batch files which may be executed from different user accounts.

Get SID for current logged in domain user

Run the command ‘whoami /user’ from command line to get the SID for the logged in user.
Example:

Get SID for the local administrator of the computer

Get SID for the domain administrator

Find username from a SID
Now this is tip is to find the user account when you have a SID. One of the readers of this post had this usecase and he figured out the command himself with the help of the commands given above. Adding the same here.

very good explanation,it’s just great

Hi, Very good post!

Can you tell me how to get the SID of AD Group?

to get the SID of a ADGroup you can simply use the PowerShell CmdLet Get-ADGroup:

Get-ADGroup -Identity “Group Name”

DistinguishedName : CN=Administratoren,CN=Builtin,DC=domain,DC=com
GroupCategory : Security
GroupScope : DomainLocal
Name : Administratoren
ObjectClass : group
ObjectGUID : 7d6471ab-9ea3-4cc4-8652-be3345623291
SamAccountName : Administratoren
SID : S-1-5-32-544

With the exact same Cmdlet you can get the Groupname from a given SID:

PS C:\Windows> Get-ADGroup -Identity S-1-5-32-544

DistinguishedName : CN=Administratoren,CN=Builtin,DC=horaios,DC=local
GroupCategory : Security
GroupScope : DomainLocal
Name : Administratoren
ObjectClass : group
ObjectGUID : 7d6471ab-9ea3-4cc4-8652-be3345623291
SamAccountName : Administratoren
SID : S-1-5-32-544

Hi Guy, nice post.

Could you tell me how to get Admin SID from cmd using another user but administrator?

How to delete SID in admin group.

Very good post. Thanks for sharing the information.

How to get sid of ad user id, I am not able to get the user id from whoami command.

How to get sid of computer object for all user on AD ?
Thank you.

You would do that with Powershell:
get-adcomputer -filter * | select Name, SID

This will give you a list with computernames and corresponding SID.

to output to text:
get-adcomputer -filter * | select Name, SID >> C:\temp\computersandSID.txt

to output to csv:
get-adcomputer -filter * | select Name, SID | output-csv C:\temp\computersandSID.csv

this should be done from a Domain controller or from a domain client with RSAT tools.

I needed it the other way round, I had an SID and wanted to know what user it was, so I turned the wmic command around an it worked fine:

wmic useraccount where sid=’S-1-5-21-….’ get name

Thank you for this tip!

Hello Rofel, glad that this article helped you figure out the command for your reverse usecase. I am including this in the post for the benefit of others.

Hi .. is there a way to set the SID into a var?
Meanwhile i get this via wmic useraccount get name,sid | findstr %userprofile:

9% or woami /user is nice. 😉
and set it manually .. :/

Hi and thank you for this tip!
I have to create a little script to automatically copy some registry files.
First it has to get the sid of the user and then it has to navigate to the registry – HKEY_USERS\%sid% and copy the files there.
Can anyone help me out with that please?
Thank you in advance!

Thank you for this command line page.

B/G: OS 7 Home Premium SP1 in Dual Boot environment with Win 10

Читайте также:  Windows 10 консоль восстановления при загрузке

When checking file security of multiple files, I discovered two Unknown Account SIDs:

Account Unknown(S-1-5-21- … -1001)
Account Unknown(S-1-5-21- … -1007)

I was unable to delete these accounts and they did not show up under UAC. These accounts have inherited properties for EACH file. If I removed the inheritance, I couldn’t any access the file at all. I bumped up UAC to default, which had been turned off.

Turns out the dual boot scenario generated at least one of the unknown SIDs. I found that the SIDs does belong to my Win 10. So when I access files on the Win7 partition from a Win 10 logon, as I have done, the ‘unknown SID’ really belongs to the user there in 10 (moi).

Here are the command lines that I used:

WhoAmI ‘determines current user; works in Win 7, 10 and also as a Linux command as I understand.

wmic useraccount where name=’%username%’ get sid ;returns the SID

Running the latter on Win 10, gave me exactly one of the unknown SIDs. Bingo!

I also have Virtual Machines on my Win 7 machine with a shared folder and wondering if they created the second SID. Finally, my dual boot is really a tri-boot with Vista on a second drive and I will check its SID. I don’t recall accessing data from Vista in any other partition but I have copied files from Vista into 7.

At least the mystery is solved in that I do not have a virus, a keylogger, or some rogue user with full access to my machine.

Again the command that helped resolve this issue was: wmic useraccount where name=’%username%’ get sid

Thank you so much,

Wonder if there any option or wmic useraccount command to provide all the users that belong to a group
Something like wmic useraccount get domain,name,sid where SID=S-1-5-32-544 (this SID is from the Group command)

Looks good, thanks to all who have put this info out.

Now I need to put this in to a .bat file such that I can end up with a variable that has the user’s SID which I can then use to navigate to places that are based on the user sid such as in Win 10 there is a folder “c:\users\public\publicaccountpictures\usersSID”
or I could user it to go to the “Actual” user reg settings etc.

Is there a way to use a wildcard in this command? This is kinda what I was looking to do…
wmic useraccount where sid=”S-1-5-21*” get name

But that is not working.

thanks a lot. How can i delete “SID” word. Example:
wmic useraccount where name=’%username%’ get sid > C:\sid.txt
and sid.txt
SID
S-1-5-21-2416115148-63416681-3240496290-1000
I only need the number (delete SID)
Thanks

@acg
you can use my script

wmic useraccount where name=’user’ get sid >usersid.txt
MORE /E +1 usersid.txt > usersidno.txt
set /p usersid= Bryan

Hi!
Nice work!
How to get the list of (all) registered users?

wmic useraccount get name /all

Half way there. Is there a way to turn off the headers in the response? If not this is only good for you as an individual looking at it and if that’s the case, there’s not really value in this command. I need to be able to use the response as a value in a subsequent command and I don’t want to have to parse the results.

if you need the number (delete SID)

wmic useraccount where name=’user’ get sid >usersid.txt
MORE /E +1 usersid.txt > usersidno.txt

“name=” with a capital letter “Name=”

wmic useraccount where Name=’user’ get sid >usersid.txt
MORE /E +1 usersid.txt > usersidno.txt

Sir,
i want to disable the WMIC useraccount get name,sid from the domain ( for security purpose). because locally I enter this command from the local machine its showing all the users list so actually i dont want see this things to others users workshop.

Kindly suggest me how to disable

How to get the SID`s of administrator groups using powershell for single system and group of systems

How can I recover an accidentally delete Administrator account

None of the above works while running it as a normal user. (without admin rights)
Use the Whoami command and convert its output of use in powershell:
This works with restricted or domain users.

Оцените статью