как узнать sid свой sid
Как найти SID пользователя в WMIC или в реестре Windows 10
Существует множество причин, по которым вам может понадобиться найти идентификатор безопасности (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 вы можете открыть обычную неадминистративную командную строку.
Введите в командной строке следующую команду в точности так, как показано здесь, включая пробелы или их отсутствие:
Если вы знаете имя пользователя и хотите получить только SID этого пользователя, введите эту команду, но замените USER именем пользователя (оставьте кавычки):
Если вы получаете сообщение об ошибке, что команда wmic не распознается, измените рабочий каталог на C:\Windows\System32\wbem\ и повторите попытку. Вы можете сделать это с помощью команды cd (изменить каталог).
Вы должны увидеть таблицу, отображаемую в командной строке. Это список всех учетных записей пользователя в Windows, с указанием имени пользователя и соответствующего SID учетной записи.
Теперь, когда вы уверены, что определенное имя пользователя соответствует определенному SID, вы можете вносить в реестр любые изменения, которые вам нужны, или делать то, для чего вам нужна эта информация.
Если у вас есть случай, когда вам нужно найти имя пользователя, но всё, что у вас есть, – это идентификатор безопасности, вы можете «отменить» команду следующим образом (просто замените этот SID на соответствующий):
Как найти SID пользователя в реестре
Вы также можете определить SID пользователя, просматривая значения ProfileImagePath в каждом S-1-5-21 с префиксом SID, перечисленных под этим ключом:
В значении ProfileImagePath в каждом ключе реестра с именем SID указывается каталог профиля, в который входит имя пользователя.
Этот метод сопоставления пользователей с SID покажет только тех пользователей, которые вошли в систему или вошли в систему и переключились на другого пользователя. Чтобы продолжить использовать метод реестра для определения идентификаторов безопасности других пользователей, вам необходимо войти в систему под учетной записью каждого пользователя в системе и повторить эти шаги. Это большой недостаток; предполагая, что вам это доступно, гораздо лучше использовать метод команды wmic.
Как найти идентификатор безопасности (SID) любого пользователя в Windows 10
SID имеют решающее значение для систем, потому что все учетные записи пользователей связаны с неизменяемой буквенно-цифровой символьной строкой. Любые изменения в имени пользователя не влияют на доступ пользователей к системным ресурсам, и в случае, если вы удаляете имя пользователя, а позже кто-то пытается создать учетную запись с вашим старым именем пользователя, невозможно восстановить доступ к ресурсам, так как идентификаторы безопасности всегда уникален для каждого имени пользователя, и в этом случае это не то же самое.
Теперь давайте посмотрим, как найти идентификатор безопасности (SID) любого пользователя в Windows 10.
Найти идентификатор безопасности (SID) любого пользователя в Windows 10
1] Использование WMIC
Найти SID или идентификатор безопасности пользователя очень просто. Для этого мы должны использовать командную строку инструментария управления Windows (WMIC).
Теперь введите следующую команду:
Теперь вы получите результаты, как показано на скриншоте ниже. Вы получите учетную запись пользователя с идентификатором безопасности.
Фильтрация SID для желаемого пользователя
Читатели, которые раньше использовали SQL-запросы, могут относиться к этому. Но эта команда помогает пользователю получить SID конкретного пользователя и игнорировать все хлопоты. Это наиболее полезно, когда большая система (например, сервер) входит в систему и используется одновременно несколькими пользователями, эта команда сэкономит много вашего времени. Но будет работать только если вы знаете имя пользователя пользователя.
Теперь команда, которую вы собираетесь использовать,
Теперь вам нужно заменить USER фактическим именем пользователя в кавычках в приведенной выше команде.
Например, это должно быть как
В случае, если вы получаете ошибку при использовании команды выше, попробуйте изменить путь на C: \ Windows | System32 | wbem вместо C: \ Windows \ System32 \
Результат приведенной выше команды будет выглядеть примерно так:
2] Использование Whoami
Найти SID текущего пользователя с помощью командной строки или PowerShell
Откройте окно PowerShell/CMD и введите следующую команду:
Откройте окно PowerShell/CMD и введите следующую команду:
Найти SID всех пользователей с помощью командной строки или PowerShell
Откройте окно командной строки/PowerShell и введите следующую команду:
Найти SID конкретного пользователя с помощью CommandPrompt или PowerShell
Откройте командную строку/PowerShell и введите следующую команду:
Укажите фактическое имя пользователя вместо имени пользователя в приведенной выше команде.
Найти имя пользователя SID с помощью командной строки или PowerShell
Откройте командную строку/PowerShell и введите следующую команду
Укажите фактическое значение SID вместо вышеуказанной команды.
3] Используйте PowerShell
Другой способ найти SID для всех пользователей – использовать команду Get-WmiObject в PowerShell.
Откройте PowerShell и введите следующую команду:
4] Использование редактора реестра
Открыв редактор реестра, перейдите по следующему пути:
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.
При участии Павитры Бхат
Как узнать sid свой sid
Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами установили домен Active Directory на Windows Server 2019. Одним из краеугольных понятий в AD является идентификатор безопасности компьютера SID, о нем и пойдет речь. Мы разберем, какие они бывают у сервера и рабочей станции, а так же научимся определять SID компьютера, буквально за минуту.
Сколько у компьютера 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-CL01\w10-cl01:S-1-5-21-7706586-876249769-275126362. Обратите внимание, что перед идентификатором безопасности идет имя компьютера, это сразу говорит, что он локальный.
И команда указанная выше, показывает вам доменный SID рабочей станции. SID for ROOT\w10-cl01$:S-1-5-21-233550040-578987154-4094747311-1602. Обратите внимание, что перед идентификаторам идет имя домена ROOT\.
Нюансы идентификаторов безопасности на рабочих станциях
Некоторое время назад, Марк Руссинович, очень известный человек в мире Microsoft, написал замечательную статью, про мифы дублирования SID, где показал на практике свои мысли, но после прочтения статьи у некоторых людей оставалась в голове путаница или вопросы, \ бы хотел немного уточнить по статье (Ссылка на нее https://blogs.technet.microsoft.com/mark_russinovich/2009/11/15/sid/).
Предположим, что вы клонируете нужную вам виртуальную машину или хост. Если вы не обезличиваете систему, с помощью Sysprep, то у вас все полученные клоны систем, будут иметь один локальный SID компьютера. Если мы говорим про окружение в виде рабочей группы в локальной сети, то ни каких проблем с доступом или конфликтом с доступом к ресурсам вы не увидите. Но вот в случае с доменным SID, такое не получится, он должен быть уникальным в пределах Active Directory, в противном случае, у вас будут конфликты между двумя объектами. Убедитесь, что после клонирования и обезличивания у вас разные SID, полученные от мастера RID.
Например, если вы попытаетесь восстановить безопасный канал между контроллером домена и клонированной машиной у которой дублирующий идентификатор безопасности, то она в домен попадет, но выкинет из него первую рабочую станцию и еще кучу различного и разного, глючного поведения.
Методы определения сида компьютера
Хочу отметить, что данную команду вы должны выполнять либо на контроллере домена или же на рабочей станции, где установлены консоли администрирования и утилиты из пакета RSAT.
тут так же будет запрошен SID учетной записи «Администратор». Если компьютер доменный, то нам поможет командлет Get-ADComputer. Запускаем оснастку PowerShell и вводим команду:
Как видите методов очень много. Видел я метод и получения сида из реестра Windows, в ветке
Как узнать идентификатор безопасности (SID) пользователя в Windows 10
В данной статье рассмотрено несколько способов, с помощью которых можно узнать идентификатор безопасности (SID) пользователя в операционной системе Windows 10.
Операционная система использует именно идентификаторы безопасности (SID) для контроля доступа к различным ресурсам, таким как объекты файловой системы, ключам реестра, сетевым каталогам, что означает, что даже если вы измените имя пользователя, то это не повлияет на какие-либо предварительные настройки для этой учетной записи, поскольку каждая конфигурация привязана к SID, который остается постоянным.
Идентификатор безопасности может быть полезен во время выполнения определенных команд, связанных с безопасностью компьютера.
Как узнать идентификатор безопасности (SID) пользователя в командной строке
Чтобы узнать SID текущего пользователя воспользуемся утилитой whoami, для этого откройте командную строку и выполните следующую команду:
Также узнать SID текущего пользователя можно выполнив следующую команду:
wmic useraccount where name=»%username%» get name,sid
Чтобы узнать все SID присутствующие в операционной системе, выполните команду:
Чтобы узнать SID определённого пользователя, выполните следующую команду:
wmic useraccount where name=»TestUser1″ get 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 определённого пользователя, выполните следующую команду:
Также узнать SID определённого пользователя, можно выполнив команду:
Чтобы узнать имя пользователя учетной записи по SID (обратная процедура), выполните команду следующего вида:
Где вместо SID укажите нужный идентификатор безопасности.
В данном примере команда выглядит так:
Как узнать идентификатор безопасности (SID) в редакторе реестра
Используя редактор реестра, также можно узнать идентификатор безопасности (SID), для этого откройте редактор реестра нажав сочетание клавиш + R и в открывшемся окне Выполнить введите regedit и нажмите клавишу Enter ↵.
В открывшемся окне редактора реестра, скопируйте/вставьте или перейдите по следующему пути:
В разделе ProfileList вы увидите всех пользователей и их идентификаторы SID.
Как узнать 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 и выполнить команду:
В том случае, когда необходимо узнать 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
Дополнительно в WMI-запросе можно указать имя компьютера (для локального) или домена (для доменного пользователя). Например эта команда выведет SID локального администратора:
wmic useraccount where (name=′administrator′ and domain=′%computername%′) get sid
wmic useraccount where (name=′administrator′ and domain=′contoso′) get sid
Для обычного пользователя все также, узнаем 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
Примечание. В запросе вместо имени компьютера\домена можно использовать переменные %computername% и %userdomain%.
PowerShell и WMI
PowerShell также позволяет работать с WMI. Для примера обратимся к классу win32_userAccount и выведем SID доменного:
и локального пользователя:
Также вместо имени компьютера и домена можно указывать переменные окружения $env:computername и $env:userdomain, например:
Для обратной операции (узнать имя пользователя по SID) нам потребуется использовать свойство SID класса win32_SID. Например:
Как вариант, для работы с WMI можно использовать командлет Get-WmiObject (или Get-CimInstance). Например так мы узнаем SID пользователя:
Для доменного пользователя процедура идентична, только в виде параметра передаются имя пользователя и имя домена:
Для обратной процедуры получения имени по SID делаем наоборот — сначала создаем объект класса System.Security.Principal.SecurityIdentifier и передаем ему в виде параметра SID пользователя, а затем переводим его в объект класса System.Security.Principal.NTAccount и выводим свойство Value, содержащее имя пользователя:
PsGetSid
Как видите, встроенных средств для выяснения SID в Windows предостаточно, но для полноты картины возьмем еще одно, от стороннего разработчика.
PsGetSid — утилита командной строки от Sysinternals, входящая в состав пакета PsTools. PsGetSid умеет получать SID пользователя по его имени и наоборот, работает как с локальными, так и с доменными аккаунтами. Утилита не требует установки, ее достаточно скопировать на нужный компьютер и запустить.
Для примера запросим SID пользователя по его имени: