Как узнать sid компьютера windows 10

В данной статье рассмотрено несколько способов, с помощью которых можно узнать идентификатор безопасности (SID) пользователя в операционной системе

В данной статье рассмотрено несколько способов, с помощью которых можно узнать идентификатор безопасности (SID) пользователя в операционной системе Windows 10.

SID (Security Identifier) — идентификатор безопасности, это уникальный идентификатор (код) который присваивается любой создаваемой доменной или локальной учетным записям, а также группе и другим объектам безопасности.

Операционная система использует именно идентификаторы безопасности (SID) для контроля доступа к различным ресурсам, таким как объекты файловой системы, ключам реестра, сетевым каталогам, что означает, что даже если вы измените имя пользователя, то это не повлияет на какие-либо предварительные настройки для этой учетной записи, поскольку каждая конфигурация привязана к SID, который остается постоянным.

Идентификатор безопасности может быть полезен во время выполнения определенных команд, связанных с безопасностью компьютера.

Содержание

  1. Как узнать идентификатор безопасности (SID) пользователя в командной строке
  2. Как узнать идентификатор безопасности (SID) пользователя в Windows PowerSell
  3. Как узнать идентификатор безопасности (SID) в редакторе реестра

Как узнать идентификатор безопасности (SID) пользователя в командной строке

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

whoami /user

Также узнать SID текущего пользователя можно выполнив следующую команду:

wmic useraccount where name=»%username%» get name,sid

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

wmic useraccount get name,sid

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

wmic useraccount where name=»TestUser1″ get sid

Где TestUser1 — имя пользователя, SID которого нужно узнать.

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

wmic useraccount where sid=»S-1-5-21-3210479907-464018182-414762983-1002» get name

Как узнать идентификатор безопасности (SID) пользователя в Windows PowerSell

Также узнать идентификатор безопасности можно используя консоль Windows PowerShell.

Чтобы узнать все идентификаторы безопасности (SID) в консоли Windows PowerShell, выполните команду:

Get-WmiObject Win32_UserAccount | Select Name,SID

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

(gwmi win32_useraccount -Filter «name = ‘TestUser1′»).sid

Где TestUser1 — имя пользователя, SID которого нужно узнать.

Также узнать SID определённого пользователя, можно выполнив команду:

Get-WmiObject -Class Win32_UserAccount -Filter «name=’TestUser1′»

Где TestUser1 — имя пользователя, SID которого нужно узнать.

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

(gwmi win32_useraccount -Filter «sid = ‘SID'»).name

Где вместо SID укажите нужный идентификатор безопасности.

В данном примере команда выглядит так:

(gwmi win32_useraccount -Filter «sid = ‘S-1-5-21-3210479907-464018182-414762983-1002‘»).name

Как узнать идентификатор безопасности (SID) в редакторе реестра

Используя редактор реестра, также можно узнать идентификатор безопасности (SID), для этого откройте редактор реестра нажав сочетание клавиш + R и в открывшемся окне Выполнить введите regedit и нажмите клавишу Enter ↵.

В открывшемся окне редактора реестра, скопируйте/вставьте или перейдите по следующему пути:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

В разделе ProfileList вы увидите всех пользователей и их идентификаторы SID.

Обновлено 18.05.2022

компьютер AD

Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами установили домен Active Directory на Windows Server 2019. Одним из краеугольных понятий в AD является идентификатор безопасности компьютера SID, о нем и пойдет речь. Мы разберем, какие они бывают у сервера и рабочей станции, а так же научимся определять SID компьютера, буквально за минуту.

Сколько у компьютера SID-ов?

О том, что такое SID у пользователя, я уже рассказывал. SID — это уникальное имя (буквенно-цифровая символьная строка), которое используется для идентификации объекта, такого как пользователь или компьютер в сети систем NT. Windows предоставляет или запрещает доступ и права доступа к ресурсам на основе ACL, которые используют SID для уникальной идентификации компьютеров и их членства в группах. Когда компьютер запрашивает доступ к ресурсу, его ACL проверяет SID компьютера, чтобы определить, разрешено ли этому компьютеру выполнять это действие или нет. Схематично выглядит вот так.

Схема формирования SID Windows

Существует два типа SID у компьютера:

  • Первый тип, это когда рабочая станция или сервер не являются членом домена Active Directory
  • Второй тип, это когда компьютер входит в домен Active Directory

В обоих случаях у вас будет два абсолютно разных SID. Первый дескриптор безопасности у вас генерируется при установке системы, второй если вы вводите его в домен AD. И так, у меня есть тестовый домен root.pyatilistnik.org. Есть клиентская станция с Windows 10 1803. Для того, чтобы вам показать разницу и оба SID идентификатора на моей тестовой Windows 10, мы воспользуемся утилитой Марка Русиновича PsGetSid из инструментария Sysinternals (Скачать PsGetSid можно по ссылке https://docs.microsoft.com/en-us/sysinternals/downloads/psgetsid). Распаковываете архив с утилитой, открываете командную строку от имени администратора и переходите с помощью cd в каталог с утилитой PsGetSid.

Первым делом я выведу имя компьютера, через команду hostname. В моем примере, это W10-CL01.

Далее я выведу локальный SID компьютера, через утилиту PsGetSid:

В итоге я получил SID for W10-CL01w10-cl01:S-1-5-21-7706586-876249769-275126362. Обратите внимание, что перед идентификатором безопасности идет имя компьютера, это сразу говорит, что он локальный.

И команда указанная выше, показывает вам доменный SID рабочей станции. SID for ROOTw10-cl01$:S-1-5-21-233550040-578987154-4094747311-1602. Обратите внимание, что перед идентификаторам идет имя домена ROOT.

два sid компьютера

Нюансы идентификаторов безопасности на рабочих станциях

Некоторое время назад, Марк Руссинович, очень известный человек в мире Microsoft, написал замечательную статью, про мифы дублирования SID, где показал на практике свои мысли, но после прочтения статьи у некоторых людей оставалась в голове путаница или вопросы, бы хотел немного уточнить по статье (Ссылка на нее https://blogs.technet.microsoft.com/mark_russinovich/2009/11/15/sid/).

Предположим, что вы клонируете нужную вам виртуальную машину или хост. Если вы не обезличиваете систему, с помощью Sysprep, то у вас все полученные клоны систем, будут иметь один локальный SID компьютера. Если мы говорим про окружение в виде рабочей группы в локальной сети, то ни каких проблем с доступом или конфликтом с доступом к ресурсам вы не увидите. Но вот в случае с доменным SID, такое не получится, он должен быть уникальным в пределах Active Directory, в противном случае, у вас будут конфликты между двумя объектами. Убедитесь, что после клонирования и обезличивания у вас разные SID, полученные от мастера RID.

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

Методы определения сида компьютера

  • Первый метод я вам уже показал. он заключается в использовании утилиты PsGetSid
  • Второй метод, это использование командной строки, с помощью утилиты dsquery. Получать мы таким методом будем доменный SID у сервера или рабочей станции:

dsquery * Filter «(name=Имя компьютера)» attr objectSID

или

dsquery computer name «Имя компьютер» | dsget computer SID

Хочу отметить, что данную команду вы должны выполнять либо на контроллере домена или же на рабочей станции, где установлены консоли администрирования и утилиты из пакета RSAT.

В противном случае вы получите ошибку «dsquery» не является внутренней или внешней

получение SID компьютера с помощью dsquery

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

Запрос локального SID компьютера-01

Запрос локального SID компьютера-02

  • Куда же без PowerShell в нем можно делать, что угодно. Вот пример кода дающего локальный идентификатор безопасности у рабочей станции:

function get-sid
{
Param ( $DSIdentity )
$ID = new-object System.Security.Principal.NTAccount($DSIdentity)
return $ID.Translate( [System.Security.Principal.SecurityIdentifier] ).toString()
}
$admin = get-sid «Администратор»
$admin.SubString(0, $admin.Length — 4)

тут так же будет запрошен SID учетной записи «Администратор». Если компьютер доменный, то нам поможет командлет Get-ADComputer. Запускаем оснастку PowerShell и вводим команду:

Get-ADComputer -identity «W10-CL01» -Properties «SID» | FL SID

или

Get-ADComputer W10-CL01 -prop sid

SID через PowerShell

Как видите методов очень много. Видел я метод и получения сида из реестра Windows, в ветке

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList

На этом у меня все, с вами был Иван Семин, автор и создатель IT блога Pyatilistnik.org.

SID (Security IDentifier) – это уникальный идентификатор, который присваивается пользователям, группам, компьютерам или другим объектам безопасности при их создании в Windows или Active Directory. Windows использует SID, а не имя пользователя для контроля доступа к различным ресурсам: сетевым папкам, ключам реестра, объектам файловой системы (NTFS разрешения), принтерам и т.д. В этой статье мы покажем несколько простых способов получить SID пользователя, группы или компьютера, и обратную процедуру – получить объект по известному SID.

Содержание:

  • Что такое SID объекта в Windows?
  • Как получить SID локального пользователя?
  • Узнать SID пользователя или группы в домене Active Directory
  • Получить SID компьютера
  • Как узнать имя пользователя или группы по известному SID?
  • Поиск объектов в Active Directory по SID

Что такое SID объекта в Windows?

Как мы уже сказали, SID (security identifier) позволяет уникально идентифицировать пользовали, группу или компьютер в пределах определенной области (домена или локального компьютера). SID представляет собой строку вида:

S-1-5-21-2927053466-1818515551-28245911311103.
В данном примере:

  • 2927053466-1818515551-2824591131 – это уникальный идентификатор домена, выдавшего SID (у всего объекта в одном домене эта часть будет одинакова)
  • 1103 – относительный идентификатор безопасности объекта (RID). Начинается с 1000 и увеличивается на 1 для каждого нового объекта. Выдается контроллером домена с FSMO ролью RID Master)

SIDы объектов Active Directory хранятся в базе ntds.dit, а SIDы локальных пользователей и групп в локальной базе диспетчера учетных записей Windows (SAM, Security Account Manager в ветке реестра HKEY_LOCAL_MACHINESAMSAM).

В Windows есть так называемые известные идентификаторы безопасности (Well-known SID). Это SID встроенных (BuiltIn) пользователей и групп, которые есть на любых компьютерах Windows. Например:

  • S-1-5-32-544
    – встроенная группу Administrators
  • S-1-5-32-545
    – локальные пользователи
  • S-1-5-32-555
    – группа Remote Desktop Users, которым разрешен вход по RDP
  • S-1-5-domainID-500
    – учетная запись встроенного администратора Windows
  • И т.д.

В Windows можно использовать различные средства для преобразования SID -> Name и Username -> SID: утилиту whoami, wmic, WMI, классы PowerShell или сторонние утилиты.

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

Чтобы получить SID локальной учетной записи, можно воспользоваться утилитой wmic, которая позволяет обратится к пространству имен WMI (Windows Management Instrumentation) компьютера.

wmic useraccount where name='test_user' get sid

Узнать SID пользователя через WMI

Команда может вернуть ошибку, если репозиторий WMI поврежден. Воспользуйтесь этой инструкцией для восстановления WMI репозитория.

Команда вернула SID указанного пользователя —
S-1-5-21-1175651296-1316126944-203051354-1005
.

Чтобы вывести список SID всех локальных пользователей Windows, выполните:

wmic useraccount get name,sid.

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

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

Можно обратится к WMI напрямую из PowerShell:

(Get-CimInstance -Class win32_userAccount -Filter "name='test_user' and domain='$env:computername'").SID

В новых версиях PowerShell Core 7.x вместо команды Get-WmiObject нужно использовать Get-CimInstance.

Но еще проще получить SID локального пользователя с помощью встроенного PowerShell модуля управления локальными пользователями и группами (Microsoft.PowerShell.LocalAccounts).

Get-LocalUser -Name 'test_user' | Select-Object Name, SID

powershell получить sid локалього пользователя в Windows

По аналогии можно получить SID локальной группы:

Get-LocalGroup -Name tstGroup1 | Select-Object Name, SID

Также вы можете использовать.NET классы System.Security.Principal.SecurityIdentifier и System.Security.Principal.NTAccount для получения SID пользователя с помощью PowerShell:

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

Узнать SID пользователя или группы в домене Active Directory

Вы можете узнать SID своей доменной учетной записи командой:

whoami /user

whoami user getsid

Получить SID пользователя домена Active Directory можно с помощью WMIC. В этом случае в команде нужно указать имя домена:

wmic useraccount where (name='jjsmith' and domain=′corp.winitpro.ru′) get sid

Для получения SID доменного пользователя можно воспользоваться командлетом Get-ADUser, входящего в состав модуля Active Directory Module для Windows PowerShell. Получим SID для доменного пользователя jjsmith:

Get-ADUser -Identity 'jjsmith' | select SID

get-aduser select sid

Вы можете получить SID группы AD с помощью командлета Get-ADGroup:

Get-ADGroup -Filter {Name -like "msk-admin*"} | Select SID

Get-ADGroup получить sid доменной группы

Если на вашем компьютере не установлен модуль AD для PowerShell, вы можете получить SID пользователя с помощью классов .Net:

$objUser = New-Object System.Security.Principal.NTAccount("corp.wintpro.ru","jjsmith")

$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
$strSID.Value

PowerShell - get SID via SecurityIdentifier and NTAccountЭта же команда PowerShell в одну строку:

(new-object security.principal.ntaccount “jjsmith").translate([security.principal.securityidentifier])

Получить SID компьютера

Если компьютер с Windows добавлен в домен Active Directory, у него будет два разных SID. Первый SID – идентификатор локального компьютера (Machine SID), а второе – уникальный идентификатор компьютера в AD.

SID компьютера в домене Active Directory можно получить с помощью команды:

Get-ADComputer srv-rds1 -properties sid|select name,sid

get-adcomputer команда для получения SID компьютера в домене Active Directory

SID локального компьютера (Machine SID) можно получить с помощью бесплатной утилиты PsGetsid (https://docs.microsoft.com/en-us/sysinternals/downloads/psgetsid): Но ее придется скачивать и устанавливать на каждый компьютер вручную.

.PsGetsid64.exe

Или просто, обрезав последние 4 символа RID и SID любого локального пользователя:

$user=(Get-LocalUser Administrator).sid
$user -replace ".{4}$"

PsGetsid6 вывести machine sid локального компьютера

Важно, чтобы у каждого компьютера в домене был уникальный локальный SID. Если вы клонируете компьютеры или виртуальные машины, или создаете их из одного шаблона, то перед тем как добавить их в домен нужно выполнить команду sysprep. Эта утилита сбрасывает локальный Machine SID. Это избавит вас от частых ошибок “Не удалось восстановить доверительные отношения между рабочей станцией и доменом”.

Как узнать имя пользователя или группы по известному SID?

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

wmic useraccount where sid='S-1-3-12-12452343106-3544442455-30354867-1434' get name

Для поиска имени доменного пользователя по SID используйте командлеты из модуля
RSAT-AD-PowerShell
:

Get-ADUser -Identity S-1-5-21-247647651-3952524288-2944781117-23711116

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

Get-ADGroup -Identity S-1-5-21-247647651-3952524288-2944781117-23711116

Get-ADGroup найти группу по SID

Также можно узнать получить SID группы и пользователя с помощью встроенных классов PowerShell (без использования дополнительных модулей):

$objSID = New-Object System.Security.Principal.SecurityIdentifier ("S-1-5-21-2470456651-3958312488-29145117-23345716")
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount])
$objUser.Value

Поиск объектов в Active Directory по SID

Если вы не знаете к какому типу объекта AD относится SID и какой точно командлет нужно использовать для его поиска (Get-AdUser, Get-ADComputer или Get-ADGroup), вы можете использовать универсальный метод поиска объектов в Active Directory по SID с помощью командлета Get-ADObject

$sid = ‘S-1-5-21-2470146651-3951111111-2989411117-11119501’
Get-ADObject –IncludeDeletedObjects -Filter "objectSid -eq '$sid'" | Select-Object name, objectClass

Get-ADObject поиск объектов в AD по известному SID

В нашем случае объект AD, который имеет данный SID, является компьютером (objectClass=computer).

Вы наверняка пытались управлять разрешениями определенных файлов, папок или часто просматриваете реестр 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, — это воспользоваться командной строкой. Откройте командную строку и введите ниже команды, которые соответствуют вашим требованиям. 

channel

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

Узнать SID пользователя windows через CMD

Узнать идентификатор SID пользователя в Windows через реестр

  1. Нажмите Win + R и введите в диалоговое окно regedit, затем нажмите Enter.
  2. В реестре скопируйте/вставьте или перейдите по пути HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList.
  3. Ниже значения ProfileList, Вы увидите всех пользователей и их идентификаторы SID.

Узнать идентификатор SID пользователя через реестр


Смотрите еще:

  • Служба профилей пользователей не удалось войти в систему windows 10
  • Как создать локальную учетную запись Пользователя В Windows 10
  • Как включить или отключить учетную запись пользователя в Windows 10
  • Как переименовать локальную учетную запись пользователя в Windows 10
  • Изменить пароль пользователя Windows с помощью командной строки 

[ Telegram | Поддержать ]

Операционная система Windows для идентификации использует специальный идентификатор безопасности (Security Identifier, SID), который присваивается каждой учетной записи пользователя (а также компьютера или группы) при ее создании. В отличие от имени каждый SID уникален, что позволяет системе однозначно идентифицировать пользователя. Поэтому операционная система оперирует именно SID-ами и использует их для контроля доступа к различным ресурсам — принтерам, файлам и папкам и т.п.

Примечание. Говоря об уникальности SID, надо сделать одну оговорку. В Windows существуют так называемые встроенные (BuiltIn) учетные записи, такие как Administrator или Guest. SID-ы этих записей одинаковы в каждом экземпляре Windows вне зависимости от версии ОС. Это дает администратору возможность более-менее  централизованно управлять доступом при отсутствии доменной структуры.

SID для локальных учетных записей храниться базе данных диспетчера учетных записей (Security Account Manager, SAM) на локальном компьютере, для доменных — в базе Active Directory. И сегодня речь пойдет о том, как можно узнать SID пользователя по его имени и наоборот, как выяснить имя пользователя по его SID.

Whoami

Когда требуется посмотреть SID текущего пользователя, то проще всего воспользоваться утилитой whoami. Для этого надо открыть консоль cmd и выполнить команду:

whoami /user

узнаем SID пользователя с помощью whoami

WMIC

В том случае, когда необходимо узнать SID произвольного пользователя, можно воспользоваться Windows Management Instrumentation (WMI). Один из инструментов для работы с WMI — утилита WMIC. Так например, узнать SID пользователя Kirill можно такой командой:

wmic useraccount where name=′Kirill′ get sid

А можно и наоборот, выяснить имя пользователя по его SID:

wmic useraccount where sid=′S-1-5-21-4178654016-3479515840-607560339-1000′ get name

узнаем SID локального пользователя с помощью wmic

Дополнительно в WMI-запросе можно указать имя компьютера (для локального) или домена (для доменного пользователя). Например эта команда выведет SID локального администратора:

wmic useraccount where (name=′administrator′ and domain=′%computername%′) get sid

а эта — доменного:

wmic useraccount where (name=′administrator′ and domain=′contoso′) get sid

узнаем SID локального иили доменного администратора с помощью wmic

Для обычного пользователя все также, узнаем SID по имени:

wmic useraccount where (name=′kirill′ and domain=′contoso′) get sid

и имя по SID:

wmic useraccount where (sid=′S-1-5-21-2404695605-4156858507-746700462-1001′ and domain=′contoso′) get name

узнаем SID доменного пользователя с помощью wmic

Примечание. В запросе вместо имени компьютерадомена можно использовать переменные %computername% и %userdomain%.

PowerShell и WMI

PowerShell также позволяет работать с WMI. Для примера обратимся к классу win32_userAccount и выведем SID доменного:

([wmi]″win32_userAccount.Domain=′contoso′, Name=′Kirill′″).sid

и локального пользователя:

([wmi]″win32_userAccount.Domain=′wks1′, Name=′Petya′″).sid

Также вместо имени компьютера  и домена можно указывать переменные окружения $env:computername и $env:userdomain, например:

([wmi]″win32_userAccount.Domain=$env:computername, Name=′Petya′″).sid

узнаем SID пользователя с помощью wmi

Для обратной операции (узнать имя пользователя по SID) нам потребуется использовать свойство SID класса win32_SID. Например:

[wmi]″win32_SID.SID=′S-1-5-21-4178654016-3479515840-607560339-1002′″).AccountName

узнаем имя пользователя по его SID с помощью wmi

Как вариант, для работы с WMI можно использовать командлет Get-WmiObject (или Get-CimInstance). Например так мы узнаем SID пользователя:

(Get-WmiObject -Class win32_userAccount -Filter ″name=′Kirill′ and domain=′Contoso′″).SID

узнаем SID пользователя с помощью Get-WmiObject

а так его имя:

(Get-WmiObject -Class win32_userAccount -Filter ″SID=′S-1-5-21-2404695905-416858507-746700462-1001′″).Name

узнаем имя пользователя по SID с помощью Get-WmiObject

PowerShell и .NET

Также узнать SID пользователя можно с помощью .NET класса System.Security.Principal.NTAccount. Этот класс используется для представления пользователя или группы. Для получения SID локального пользователя надо создать новый объект этого класса и передать ему в виде параметра имя пользователя, а затем с помощью метода Translate перевести объект пользователя в объект класса System.Security.Principal.SecurityIdentifier, который предназначен для представления SID пользователя или группы:

$User = New-Object System.Security.Principal.NTAccount(″Kirill″)
$SID = $User.Translate([System.Security.Principal.SecurityIdentifier])
$SID.Value

Для доменного пользователя процедура идентична, только в виде параметра передаются имя пользователя и имя домена:

$User = New-Object System.Security.Principal.NTAccount(″Contoso″,″Kirill″)
$SID = $User.Translate([System.Security.Principal.SecurityIdentifier])
$SID.Value

узнаем SID пользователя с помощью .Net

Для обратной процедуры получения имени по SID делаем наоборот — сначала создаем объект класса System.Security.Principal.SecurityIdentifier и передаем ему в виде параметра SID пользователя, а затем переводим его в объект класса System.Security.Principal.NTAccount и выводим свойство Value, содержащее имя пользователя:

$SID = New-Object System.Security.Principal.NTAccount(″S-1-5-21-4178654016-3479515840-607560339-1000″)
$User = $SID.Translate([System.Security.Principal.NTAccount])
$User.Value

узнаем имя пользователя по SID с помощью .Net

PsGetSid

Как видите, встроенных средств для выяснения SID в Windows предостаточно, но для полноты картины возьмем еще одно, от стороннего разработчика.

PsGetSid — утилита командной строки от Sysinternals, входящая в состав пакета PsTools. PsGetSid умеет получать SID пользователя по его имени и наоборот, работает как с локальными, так и с доменными аккаунтами. Утилита не требует установки, ее достаточно скопировать на нужный компьютер и запустить.

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

psgetsid wks10Kirill

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

psgetsid S-1-5-21-438167859-634674341-1098546566-1001

узнаем имя пользователя по SID с помощью psgetsid

Существует множество причин, по которым вам может понадобиться найти идентификатор безопасности (SID) для учетной записи конкретного пользователя в Windows, но в нашем уголке мира общая причина для этого состоит в том, чтобы определить, в каком ключе раздела HKEY_USERS в реестре Windows следует искать пользовательские данные реестра.

Независимо от причины, найти соответствующий SID для имен пользователей действительно легко благодаря wmic-команде – команда доступная из командной строки в большинстве версий Windows.

См. раздел «Как найти SID пользователя в реестре» ниже на странице с инструкциями по сопоставлению имени пользователя с SID с помощью информации в реестре Windows, альтернативного метода использования WMIC.

WMIC команда не существовала до Windows XP, так что вы должны использовать метод реестра в старых версиях Windows.

Сопоставление имён пользователей Windows и SID реестра

Выполните следующие простые шаги, чтобы отобразить таблицу имён пользователей и их соответствующие идентификаторы безопасности:

Как найти SID пользователя с WMIC

Вероятно, потребуется всего лишь минута, а может быть и меньше, чтобы найти SID пользователя в Windows через WMIC:

  1. Откройте командную строку.

    В Windows 10 и Windows 8, если вы используете клавиатуру и мышь, самый быстрый способ – через меню Power User, доступное по нажатию комбинации клавиш Win + X.

    Если вы не видите командную строку в меню «Power User», введите cmd в строку поиска меню «Пуск» и нажмите «Командная строка», когда увидите её.

    Вам не нужно открывать командную строку с повышенными правами, чтобы это работало. Для некоторых команд Windows это требуется, но в приведенном ниже примере команды WMIC вы можете открыть обычную неадминистративную командную строку.

  2. Введите в командной строке следующую команду в точности так, как показано здесь, включая пробелы или их отсутствие:

    wmic useraccount get name,sid

    … и затем нажмите Enter.

    Запрос имени пользователя и SID

    Если вы знаете имя пользователя и хотите получить только SID этого пользователя, введите эту команду, но замените USER именем пользователя (оставьте кавычки):

    wmic useraccount where name="USER" get sid

    Если вы получаете сообщение об ошибке, что команда wmic не распознается, измените рабочий каталог на C:WindowsSystem32wbem и повторите попытку. Вы можете сделать это с помощью команды cd (изменить каталог).

  3. Вы должны увидеть таблицу, отображаемую в командной строке. Это список всех учетных записей пользователя в Windows, с указанием имени пользователя и соответствующего SID учетной записи.

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

Если у вас есть случай, когда вам нужно найти имя пользователя, но всё, что у вас есть, – это идентификатор безопасности, вы можете «отменить» команду следующим образом (просто замените этот SID на соответствующий):

wmic useraccount where sid="S-1-5-21-992878714-4041223874-2616370337-1001" get name

Вы также можете определить SID пользователя, просматривая значения ProfileImagePath в каждом S-1-5-21 с префиксом SID, перечисленных под этим ключом:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList

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

Пример поиска идентификатора безопасности в реестре Windows 10

Этот метод сопоставления пользователей с SID покажет только тех пользователей, которые вошли в систему или вошли в систему и переключились на другого пользователя. Чтобы продолжить использовать метод реестра для определения идентификаторов безопасности других пользователей, вам необходимо войти в систему под учетной записью каждого пользователя в системе и повторить эти шаги. Это большой недостаток; предполагая, что вам это доступно, гораздо лучше использовать метод команды wmic.

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

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

Теперь давайте посмотрим, как найти идентификатор безопасности (SID) любого пользователя в Windows 10.

Содержание

  1. Найти идентификатор безопасности (SID) любого пользователя в Windows 10
  2. 1] Использование WMIC
  3. Фильтрация SID для желаемого пользователя
  4. 2] Использование Whoami
  5. Найти SID текущего пользователя с помощью командной строки или PowerShell
  6. Найти SID всех пользователей с помощью командной строки или PowerShell
  7. Найти SID конкретного пользователя с помощью CommandPrompt или PowerShell
  8. Найти имя пользователя SID с помощью командной строки или PowerShell
  9. 3] Используйте PowerShell
  10. 4] Использование редактора реестра
  11. Идентификация SID

Найти идентификатор безопасности (SID) любого пользователя в Windows 10

1] Использование WMIC

Найти SID или идентификатор безопасности пользователя очень просто. Для этого мы должны использовать командную строку инструментария управления Windows (WMIC).

Итак, прежде всего, начните с открытия командной строки. Вы можете сделать это, выполнив поиск Командная строка в окне поиска Cortana. Или, если вы используете Windows 8 или новее, нажмите комбинацию кнопок WINKEY + X , чтобы открыть контекстное меню кнопки «Пуск», и нажмите Командная строка (администратор).

Теперь введите следующую команду:

 wmic useraccount get name, sid 

Затем нажмите клавишу Ввод .

Теперь вы получите результаты, как показано на скриншоте ниже. Вы получите учетную запись пользователя с идентификатором безопасности.

Фильтрация SID для желаемого пользователя

Читатели, которые раньше использовали SQL-запросы, могут относиться к этому. Но эта команда помогает пользователю получить SID конкретного пользователя и игнорировать все хлопоты. Это наиболее полезно, когда большая система (например, сервер) входит в систему и используется одновременно несколькими пользователями, эта команда сэкономит много вашего времени. Но будет работать только если вы знаете имя пользователя пользователя.

Теперь команда, которую вы собираетесь использовать,

 wmic useraccount где name = "USER" получить sid 

Теперь вам нужно заменить USER фактическим именем пользователя в кавычках в приведенной выше команде.

Например, это должно быть как

 wmic useraccount где name = "Ayush" получить sid 

В случае, если вы получаете ошибку при использовании команды выше, попробуйте изменить путь на C: Windows | System32 | wbem вместо C: Windows System32

Результат приведенной выше команды будет выглядеть примерно так:

2] Использование Whoami

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

Откройте окно PowerShell/CMD и введите следующую команду:

 Whoami/пользователь 

Нажмите Ввод.

Другой способ найти SID текущего пользователя – использовать команду wmic useraccount , как показано ниже

Откройте окно PowerShell/CMD и введите следующую команду:

 wmic useraccount где name = '% username%' получить домен, имя, sid 

Нажмите Ввод.

Найти SID всех пользователей с помощью командной строки или PowerShell

Откройте окно командной строки/PowerShell и введите следующую команду:

 wmic useraccount получить домен, имя, sid 

Нажмите Ввод.

Найти SID конкретного пользователя с помощью CommandPrompt или PowerShell

Откройте командную строку/PowerShell и введите следующую команду:

 wmic useraccount где name = 'username' получить sid 

Укажите фактическое имя пользователя вместо имени пользователя в приведенной выше команде.

Нажмите Ввод.

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

Откройте командную строку/PowerShell и введите следующую команду

 wmic useraccount где sid = '' получить домен, имя 

Укажите фактическое значение SID вместо вышеуказанной команды.

Нажмите Ввод.

3] Используйте PowerShell

Другой способ найти SID для всех пользователей – использовать команду Get-WmiObject в PowerShell.

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

 Get-WmiObject win32_useraccount | Выберите домен, имя, sid 

Нажмите Ввод.

4] Использование редактора реестра

Здесь начнем с открытия редактора реестра. Вы можете сделать это, выполнив поиск в окне поиска Cortana, или просто нажмите комбинацию WINKEY + R , чтобы запустить запуск, введите regedit и нажмите Enter.

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

HKEY_LOCAL_MACHINE ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Microsoft Windows NT CurrentVersion ProfileList

Теперь внутри значений ProfileImagePath для каждого идентификатора безопасности в папке ProfileList вы можете найти нужные идентификаторы безопасности и другие сведения, например имена пользователей. Страница будет выглядеть аналогично приведенному ниже фрагменту экрана.

Стоит отметить, что вы можете найти SID для пользователей, которые уже вошли в систему на компьютере. Либо они должны иметь удаленный доступ к своей учетной записи, либо их учетная запись должна быть авторизована, а затем переключена на другого пользователя, под учетной записью которого выполняется эта деятельность. Это единственный недостаток этого метода, но метод 1 использования WMIC, это не проблема вообще.

Идентификация SID

SID в формате S-1-0-0 называется пустым SID. Он присваивается идентификатору безопасности, когда его значение неизвестно, или он присваивается группе без каких-либо участников.

Кроме того, SID в формате S -1-1-0 является идентификатором мира. Он назначается группе каждого пользователя.

Наконец, SID в формате S-1-2-0 называется локальным SID. Он назначается пользователю, который должен войти в систему с локального терминала.

Вы можете узнать больше об этих идентификаторах системы здесь в Microsoft Developer Network.

При участии Павитры Бхат

Содержание

  1. Как найти SID пользователя в WMIC или в реестре Windows 10
  2. Как найти SID пользователя с WMIC
  3. Как найти SID пользователя в реестре
  4. Как узнать sid компьютера windows 10
  5. Сколько у компьютера SID-ов?
  6. Существует два типа SID у компьютера:
  7. Нюансы идентификаторов безопасности на рабочих станциях
  8. Методы определения сида компьютера
  9. Как узнать SID пользователя
  10. Whoami
  11. PowerShell и WMI
  12. PsGetSid
  13. Как узнать SID пользователя или группы AD по имени и наоборот?
  14. Как получить SID локального пользователя?
  15. Узнать SID пользователя или группы в домене AD по имени
  16. Как узнать имя учетной записи пользователя или группы по SID?
  17. Поиск объектов в Active Directory по SID
  18. Как узнать идентификатор безопасности (SID) пользователя в Windows 10
  19. Как узнать идентификатор безопасности (SID) пользователя в командной строке
  20. Как узнать идентификатор безопасности (SID) пользователя в Windows PowerSell
  21. Как узнать идентификатор безопасности (SID) в редакторе реестра

Как найти SID пользователя в WMIC или в реестре Windows 10

32428478

Существует множество причин, по которым вам может понадобиться найти идентификатор безопасности (SID) для учетной записи конкретного пользователя в Windows, но в нашем уголке мира общая причина для этого состоит в том, чтобы определить, в каком ключе раздела HKEY_USERS в реестре Windows следует искать пользовательские данные реестра.

Независимо от причины, найти соответствующий SID для имен пользователей действительно легко благодаря wmic-команде – команда доступная из командной строки в большинстве версий Windows.

См. раздел «Как найти SID пользователя в реестре» ниже на странице с инструкциями по сопоставлению имени пользователя с SID с помощью информации в реестре Windows, альтернативного метода использования WMIC.

WMIC команда не существовала до Windows XP, так что вы должны использовать метод реестра в старых версиях Windows.

Выполните следующие простые шаги, чтобы отобразить таблицу имён пользователей и их соответствующие идентификаторы безопасности:

Как найти SID пользователя с WMIC

Вероятно, потребуется всего лишь минута, а может быть и меньше, чтобы найти SID пользователя в Windows через WMIC:

Откройте командную строку.

Если вы не видите командную строку в меню «Power User», введите cmd в строку поиска меню «Пуск» и нажмите «Командная строка», когда увидите её.

Вам не нужно открывать командную строку с повышенными правами, чтобы это работало. Для некоторых команд Windows это требуется, но в приведенном ниже примере команды WMIC вы можете открыть обычную неадминистративную командную строку.

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

wmic useraccount get name,sid

Если вы знаете имя пользователя и хотите получить только SID этого пользователя, введите эту команду, но замените USER именем пользователя (оставьте кавычки):

wmic useraccount where name=»USER» get sid

Если вы получаете сообщение об ошибке, что команда wmic не распознается, измените рабочий каталог на C:WindowsSystem32wbem и повторите попытку. Вы можете сделать это с помощью команды cd (изменить каталог).

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

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

Если у вас есть случай, когда вам нужно найти имя пользователя, но всё, что у вас есть, – это идентификатор безопасности, вы можете «отменить» команду следующим образом (просто замените этот SID на соответствующий):

wmic useraccount where sid=»S-1-5-21-992878714-4041223874-2616370337-1001″ get name

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

Вы также можете определить SID пользователя, просматривая значения ProfileImagePath в каждом S-1-5-21 с префиксом SID, перечисленных под этим ключом:

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

Этот метод сопоставления пользователей с SID покажет только тех пользователей, которые вошли в систему или вошли в систему и переключились на другого пользователя. Чтобы продолжить использовать метод реестра для определения идентификаторов безопасности других пользователей, вам необходимо войти в систему под учетной записью каждого пользователя в системе и повторить эти шаги. Это большой недостаток; предполагая, что вам это доступно, гораздо лучше использовать метод команды wmic.

Источник

Как узнать sid компьютера windows 10

kompyuter AD

Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами установили домен Active Directory на Windows Server 2019. Одним из краеугольных понятий в AD является идентификатор безопасности компьютера SID, о нем и пойдет речь. Мы разберем, какие они бывают у сервера и рабочей станции, а так же научимся определять SID компьютера, буквально за минуту.

Сколько у компьютера SID-ов?

Struktura SID

Существует два типа SID у компьютера:

В обоих случаях у вас будет два абсолютно разных SID. Первый дескриптор безопасности у вас генерируется при установке системы, второй если вы вводите его в домен AD. И так, у меня есть тестовый домен root.pyatilistnik.org. Есть клиентская станция с Windows 10 1803. Для того, чтобы вам показать разницу и оба SID идентификатора на моей тестовой Windows 10, мы воспользуемся утилитой Марка Русиновича PsGetSid из инструментария Sysinternals (Скачать PsGetSid можно по ссылке https://docs.microsoft.com/en-us/sysinternals/downloads/psgetsid). Распаковываете архив с утилитой, открываете командную строку от имени администратора и переходите с помощью cd в каталог с утилитой PsGetSid.

Первым делом я выведу имя компьютера, через команду hostname. В моем примере, это W10-CL01.

Далее я выведу локальный SID компьютера, через утилиту PsGetSid:

В итоге я получил SID for W10-CL01w10-cl01:S-1-5-21-7706586-876249769-275126362. Обратите внимание, что перед идентификатором безопасности идет имя компьютера, это сразу говорит, что он локальный.

И команда указанная выше, показывает вам доменный SID рабочей станции. SID for ROOTw10-cl01$:S-1-5-21-233550040-578987154-4094747311-1602. Обратите внимание, что перед идентификаторам идет имя домена ROOT.

dva sid kompyutera

Нюансы идентификаторов безопасности на рабочих станциях

Некоторое время назад, Марк Руссинович, очень известный человек в мире Microsoft, написал замечательную статью, про мифы дублирования SID, где показал на практике свои мысли, но после прочтения статьи у некоторых людей оставалась в голове путаница или вопросы, бы хотел немного уточнить по статье (Ссылка на нее https://blogs.technet.microsoft.com/mark_russinovich/2009/11/15/sid/).

Предположим, что вы клонируете нужную вам виртуальную машину или хост. Если вы не обезличиваете систему, с помощью Sysprep, то у вас все полученные клоны систем, будут иметь один локальный SID компьютера. Если мы говорим про окружение в виде рабочей группы в локальной сети, то ни каких проблем с доступом или конфликтом с доступом к ресурсам вы не увидите. Но вот в случае с доменным SID, такое не получится, он должен быть уникальным в пределах Active Directory, в противном случае, у вас будут конфликты между двумя объектами. Убедитесь, что после клонирования и обезличивания у вас разные SID, полученные от мастера RID.

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

Методы определения сида компьютера

Хочу отметить, что данную команду вы должны выполнять либо на контроллере домена или же на рабочей станции, где установлены консоли администрирования и утилиты из пакета RSAT.

sid cherez dsquery

Zapros lokalnogo SID kompyutera 01

Zapros lokalnogo SID kompyutera 02

тут так же будет запрошен SID учетной записи «Администратор». Если компьютер доменный, то нам поможет командлет Get-ADComputer. Запускаем оснастку PowerShell и вводим команду:

SID cherez PowerShell

Как видите методов очень много. Видел я метод и получения сида из реестра Windows, в ветке

Источник

Как узнать SID пользователя

Операционная система Windows для идентификации использует специальный идентификатор безопасности (Security Identifier, SID), который присваивается каждой учетной записи пользователя (а также компьютера или группы) при ее создании. В отличие от имени каждый SID уникален, что позволяет системе однозначно идентифицировать пользователя. Поэтому операционная система оперирует именно SID-ами и использует их для контроля доступа к различным ресурсам — принтерам, файлам и папкам и т.п.

Примечание. Говоря об уникальности SID, надо сделать одну оговорку. В Windows существуют так называемые встроенные (BuiltIn) учетные записи, такие как Administrator или Guest. SID-ы этих записей одинаковы в каждом экземпляре Windows вне зависимости от версии ОС. Это дает администратору возможность более-менее централизованно управлять доступом при отсутствии доменной структуры.

SID для локальных учетных записей храниться базе данных диспетчера учетных записей (Security Account Manager, SAM) на локальном компьютере, для доменных — в базе Active Directory. И сегодня речь пойдет о том, как можно узнать SID пользователя по его имени и наоборот, как выяснить имя пользователя по его SID.

Whoami

Когда требуется посмотреть SID текущего пользователя, то проще всего воспользоваться утилитой whoami. Для этого надо открыть консоль cmd и выполнить команду:

sid1

В том случае, когда необходимо узнать SID произвольного пользователя, можно воспользоваться Windows Management Instrumentation (WMI). Один из инструментов для работы с WMI — утилита WMIC. Так например, узнать SID пользователя Kirill можно такой командой:

wmic useraccount where name=′Kirill′ get sid

А можно и наоборот, выяснить имя пользователя по его SID:

wmic useraccount where sid=′S-1-5-21-4178654016-3479515840-607560339-1000′ get name

sid2

Дополнительно в WMI-запросе можно указать имя компьютера (для локального) или домена (для доменного пользователя). Например эта команда выведет SID локального администратора:

wmic useraccount where (name=′administrator′ and domain=′%computername%′) get sid

wmic useraccount where (name=′administrator′ and domain=′contoso′) get sid

sid3

Для обычного пользователя все также, узнаем SID по имени:

wmic useraccount where (name=′kirill′ and domain=′contoso′) get sid

wmic useraccount where (sid=′S-1-5-21-2404695605-4156858507-746700462-1001′ and domain=′contoso′) get name

sid4

Примечание. В запросе вместо имени компьютерадомена можно использовать переменные %computername% и %userdomain%.

PowerShell и WMI

PowerShell также позволяет работать с WMI. Для примера обратимся к классу win32_userAccount и выведем SID доменного:

и локального пользователя:

Также вместо имени компьютера и домена можно указывать переменные окружения $env:computername и $env:userdomain, например:

sid5

Для обратной операции (узнать имя пользователя по SID) нам потребуется использовать свойство SID класса win32_SID. Например:

sid6

Как вариант, для работы с WMI можно использовать командлет Get-WmiObject (или Get-CimInstance). Например так мы узнаем SID пользователя:

sid7

sid8

Для доменного пользователя процедура идентична, только в виде параметра передаются имя пользователя и имя домена:

sid9

Для обратной процедуры получения имени по SID делаем наоборот — сначала создаем объект класса System.Security.Principal.SecurityIdentifier и передаем ему в виде параметра SID пользователя, а затем переводим его в объект класса System.Security.Principal.NTAccount и выводим свойство Value, содержащее имя пользователя:

sid10

PsGetSid

Как видите, встроенных средств для выяснения SID в Windows предостаточно, но для полноты картины возьмем еще одно, от стороннего разработчика.

PsGetSid — утилита командной строки от Sysinternals, входящая в состав пакета PsTools. PsGetSid умеет получать SID пользователя по его имени и наоборот, работает как с локальными, так и с доменными аккаунтами. Утилита не требует установки, ее достаточно скопировать на нужный компьютер и запустить.

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

Источник

Как узнать SID пользователя или группы AD по имени и наоборот?

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

Получение учетки по SID:

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

Чтобы получить SID локальной учетной записи на данном компьютере, можно воспользоваться утилитой wmic, которая позволяет обратится к пространству имен WMI компьютера. Для получения SID локального пользователя test_user можно использовать утилиту WMIC:

wmic useraccount where name=’test_user’ get sid

wmic get sid

Команда вернула нам SID указанного пользователя — S-1-5-21-1175651296-1316126944-203051354-1005.

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

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

Узнать SID пользователя или группы в домене AD по имени

Вы можете узнать SID текущей доменной учетной записи командой:

whoami user sid

Узнать SID доменного пользователя можно с помощью WMIC. В этом случае в команде нужно указать имя домена:

wmic useraccount where (name=’jjsmith’ and domain=′corp.winitpro.ru′) get sid

Для получения SID доменного пользователя можно воспользоваться командлетом Get-ADUser, входящего в состав модуля Active Directory Module для Windows PowerShell. Получим SID для аккаунта jjsmith:

get aduser sid

Вы можете получить SID группы AD с помощью другого командлета — Get-ADGroup:

Get ADGroup get sid

posh SecurityIdentifier NTAccountЭта же команда PowerShell в одну строку:

(new-object security.principal.ntaccount “jjsmith»).translate([security.principal.securityidentifier])

Как узнать имя учетной записи пользователя или группы по SID?

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

wmic useraccount where sid=’S-1-3-12-12452343106-3544442455-30354867-1434′ get name

На PowerShell получить имя пользователя по его SID можно с помощью модуля AD для PowerShell:

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

Get ADGroup get name by sid

Также можно узнать SD группу и пользователя с помощью встроенных классов PowerShell (без дополнительных модулей):

Поиск объектов в Active Directory по SID

Если вы не знаете к какому типу объекта AD относится некий SID и какой точно командлет использовать для его поиска (Get-AdUser, Get-ADComputer или Get-ADGroup), вы можете использовать универсальный метод поиска объектов в Active Directory по SID с помощью командлета Get-ADObject (параметр IncludeDeletedObjects позволяет искать по удаленным объектам AD в корзине).

SIDGet ADObject get object by sid

В нашем случае объект AD, который имеет данный SID, является компьютером (objectClass).

Источник

Как узнать идентификатор безопасности (SID) пользователя в Windows 10

1532900859 get sid 1

В данной статье рассмотрено несколько способов, с помощью которых можно узнать идентификатор безопасности (SID) пользователя в операционной системе Windows 10.

Операционная система использует именно идентификаторы безопасности (SID) для контроля доступа к различным ресурсам, таким как объекты файловой системы, ключам реестра, сетевым каталогам, что означает, что даже если вы измените имя пользователя, то это не повлияет на какие-либо предварительные настройки для этой учетной записи, поскольку каждая конфигурация привязана к SID, который остается постоянным.

Идентификатор безопасности может быть полезен во время выполнения определенных команд, связанных с безопасностью компьютера.

Как узнать идентификатор безопасности (SID) пользователя в командной строке

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

1532901364 get sid 2

Также узнать SID текущего пользователя можно выполнив следующую команду:

wmic useraccount where name=»%username%» get name,sid

1532901434 get sid 3

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

1532901446 get sid 4

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

wmic useraccount where name=»TestUser1″ get sid

1532901452 get sid 5

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

wmic useraccount where sid=» S-1-5-21-3210479907-464018182-414762983-1002 » get name

1532901408 get sid 6

Как узнать идентификатор безопасности (SID) пользователя в Windows PowerSell

Также узнать идентификатор безопасности можно используя консоль Windows PowerShell.

Чтобы узнать все идентификаторы безопасности (SID) в консоли Windows PowerShell, выполните команду:

Get-WmiObject Win32_UserAccount | Select Name,SID

1532902240 get sid 7

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

1532902217 get sid 8

Также узнать SID определённого пользователя, можно выполнив команду:

1532902251 get sid 9

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

Где вместо SID укажите нужный идентификатор безопасности.

В данном примере команда выглядит так:

1532902237 get sid 10

Как узнать идентификатор безопасности (SID) в редакторе реестра

Используя редактор реестра, также можно узнать идентификатор безопасности (SID), для этого откройте редактор реестра нажав сочетание клавиш 1532903268 winkey+ R и в открывшемся окне Выполнить введите regedit и нажмите клавишу Enter ↵.

1532903042 get sid 11

В открывшемся окне редактора реестра, скопируйте/вставьте или перейдите по следующему пути:

В разделе ProfileList вы увидите всех пользователей и их идентификаторы SID.

Источник

В операционной системе Windows вместо имен пользователей для идентификации используются SID (Security Identifiers). В этой статье познакомимся с ними.

Идентификаторы безопасности

Идентификаторы безопасности – это такие уникальные номера, которые есть у: пользователей, групп, доменов, служб и компьютеров.

В общем у тех объектов, которые могут захотеть получить доступ к другим объектам, таким как: файлы, драйверы, разделы дисков, реестр.

SID представляет собой число переменной длины. Оно состоит из:

  • номера версии идентификатора;
  • идентификатора полномочий, который показывает максимальный уровень полномочий. Для группы “Все” равно 1. Для конкретной учетной записи или группы равно 5;
  • несколько чисел подчиненных полномочий;
  • значения RID, которое гарантирует уникальность.

SID всегда начинается с “S“, например:

S-1-5-21-1463437245-1224812800-863842198-1128
  • 1 — номер версии;
  • 5 — идентификатор полномочий;
  • 21, 1463437245, 1224812800, 863842198 — значения подчиненных полномочий;
  • 1128 — RID.

Каждый локальный пользователь создается на основе компьютерного или доменного идентификатора. А для уникальности и в конце записывается уникальный RID для каждого объекта. RID для новых пользовательских учетных данных начинается с 1000, и увеличивается с каждым новым пользователем и группой. До 1000 идут RID для стандартных пользователей, например 500 для пользователя «Администратор», 501 для «Гость».

Если компьютер повышается до контроллера домена, то за основу берется идентификатор компьютера и из него создается идентификатор домена. А идентификатор компьютера генерируется заново.

Стандартные SID

Есть предопределенные идентификаторы. Они одинаковые на всех машинах во всем мире. Так файл, доступный группе Everyone (Все), на одной машине, будет открыт и на другой, если перенести жесткий диск туда.

В системе Windows существуют следующие стандартные SID:

  • s-1-0-0 — Nobody (Никто) — используется, когда идентификатор неизвестен;
  • s-1-1-0 — Everyone (Все) — группа, включающая всех пользователей за исключением анонимных;
  • S-1-2-0 — Local (Локальная) — группа пользователей, вошедших в терминалы, которые физически подключены к системе;
  • S-1-3-0 — Creator Owner ID (ID Владельца) — идентификатор владельца, используемый в наследуемых ACL;
  • S-1-3-1 — Creator Owner ID (ID Группы Владельца) — тоже что и выше, но для группы владельца;
  • S-1-5-18 — LocalSystem — используется службами;
  • S-1-5-19 — LocalService — используется службами;
  • S-1-5-20 — NetworkService — используется службами.

Работа с утилитой PsGetsid.exe

Для просмотра идентификаторов можно воспользоваться программой PsGetsid из набора Sysinternals. Выполнив команду без параметров вы увидите имя компьютера и его SID:

>PsGetsid.exe

PsGetSid v1.45 - Translates SIDs to names and vice versa
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

SID for \PC-1:
S-1-5-21-679991269-3265548881-4162047351

Указав имя домена — увидите идентификатор домена:

>PsGetsid.exe test.domain.local

PsGetSid v1.45 - Translates SIDs to names and vice versa
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

SID for TESTtest.domain.local:
S-1-5-21-1241004363-267861926-1289139162

Указав свое имя узнаете свой идентификатор, он будет зависеть от SID домена. И на всех компьютерах в домене будет одинаковым:

>PsGetsid.exe testuser

PsGetSid v1.45 - Translates SIDs to names and vice versa
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

SID for TESTtestuser:
S-1-5-21-1241004363-267861926-1289139162-1155

Как видно выше, к доменному SID просто добавили RID. При этом, локальные пользователи с одинаковыми именами на всех компьютерах будут разными.

В качестве параметра можно указать сам идентификатор, утилита в этом случае вернет имя пользователя:

>PsGetsid.exe S-1-5-21-1241004363-267861926-1289139162-1155

PsGetSid v1.45 - Translates SIDs to names and vice versa
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Account for PC-1S-1-5-21-1241004363-267861926-1289139162-1155:
User: TESTtestuser

Можно узнать имя администратора домена, для этого используем идентификатор домена и стандартный для администратора RID = 500:

>PsGetsid.exe S-1-5-21-1241004363-267861926-1289139162-500

PsGetSid v1.45 - Translates SIDs to names and vice versa
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Account for PC-1S-1-5-21-1241004363-267861926-1289139162-500:
User: TESTAdministrator

Любой компьютер в домене имеет свой SID, он также будет состоять из SID домена и своего RID. Чтобы его узнать пишите <доменимя_компьютера$>:

>PsGetsid64.exe TESTSRV-1$
PsGetSid v1.45 - Translates SIDs to names and vice versa
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

SID for TESTSRV-1$:
S-1-5-21-1241004363-267861926-1289139162-1610

SIP Процессов

Так как процессы запускаются от имени какого-либо пользователя, то процессы тоже имеют SID. Посмотреть их можно с помощью программы Process Explorer. Для этого нужно открыть свойства выбранного процесса и перейти на вкладку “Security“:

Process Explorer, смотрим SID пользователя службы

Выше я смотрю SID пользователя под которым работает один из процессов svhost.exe.


Вернуться к оглавлению

Сводка

Идентификаторы безопасности SID

Имя статьи

Идентификаторы безопасности SID

Описание

В операционной системе Windows вместо имен пользователей для идентификации используются SID (Security Identifiers). В этой статье познакомимся с ними

Понравилась статья? Поделить с друзьями:
  • Как узнать sid всех пользователей windows
  • Как узнать mac адрес wifi адаптера windows 10
  • Как удалить яндекс браузер с ноутбука windows 10 полностью
  • Как узнать ram своего компьютера windows 10
  • Как узнать mac адрес bluetooth устройства windows 10