- Как в Windows определить SID по имени пользователя и наоборот
- Как узнать SID пользователя или группы AD по имени и наоборот?
- Как получить SID локального пользователя?
- Узнать SID пользователя или группы в домене AD по имени
- Как узнать имя учетной записи пользователя или группы по SID?
- Поиск объектов в Active Directory по SID
- Как изменить SID в Windows 7 и Windows Server 2008 R2 с помощью sysprep
- SID пользователя в Windows: Что это такое и как его узнать
- Что такое SID пользователя в Windows?
- Как узнать SID пользователя в Windows с помощью cmd
- Как найти идентификатор безопасности (SID) пользователя в Windows
- Найти идентификатор безопасности (SID)
- 1: Использование WMIC
- 2: Использование редактора реестра
- Основные идентификаторы безопасности
Как в Windows определить SID по имени пользователя и наоборот
В процессе работы с учётными записями пользователям Windows гораздо удобнее иметь дело с осмысленными именами, компьютеры же, привыкшие «мыслить» на языке цифр вместо имён учётных записей оперируют их SID — уникальными идентификаторами безопасности. В Windows SID могут иметь не только пользователи, свои идентификаторы присваиваются группам, доменам, различным системным объектам и т.д.
При выполнении некоторых трюков и тонких настроек вам может понадобиться этот самый SID. Покопавшись в системном реестре, его можно извлечь оттуда вручную, но есть и более простой способ. Если у вас на компьютере завалялся пакет Sysinternals Suite, можете воспользоваться входящей в его состав утилитой PsGetSid, она то как раз и нужна, чтобы вытаскивать SID из системы. А можно извлечь SID и безо всяких сторонних средств. Для этого в Windows есть командная строка CMD и консоль PowerShell .
Чтобы получить SID текущего пользователя, выполните в запущенной от имени администратора командной строке такую команду:
Этой же командой можно извлечь SID любого локального пользователя, подставив на место переменной %username% его имя.
Аналогичный результат можно получить с помощью консоли PowerShell , только на этот раз придётся выполнить целых три команды, заменив предварительно USERNAME именем реального пользователя. Вот так:
Точно также просто можно узнать идентификатор безопасности текущего доменного пользователя. В командной строке он извлекается командой whoami /user
А вот как быть, если вам нужно проделать всё наоборот, то есть по имеющемуся SID узнать имя пользователя? И тут всё очень просто. Для этого в запущенной с повышенными привилегиями командной строке выполняем команду wmic useraccount where sid=’S-XXXXXXXXX’ get name , где S-XXXXXXXXX — известный вам идентификатор.
Как узнать SID пользователя или группы AD по имени и наоборот?
В среде Windows каждому доменному и локальному пользователю, группе и другим объектам безопасности, присваивается уникальный идентификатор — Security Identifier или SID. Именно SID, а не имя пользователя используется для контроля доступа к различным ресурсам: сетевым папкам, ключам реестра, объектам файловой системы, принтерам и т.д. В этой статье мы покажем несколько простых способов узнать SID пользователя или группы (локальных или из Active Directory), и обратную процедуру – определение имени пользователя или группы Windows по известному SID.
Получение учетки по SID:
На мой взгляд, проще всего для преобразования SID -> Username и Username -> SID проще всего воспользоваться командами командной строки или несложными командлетами PowerShell:
Как получить SID локального пользователя?
Чтобы получить SID локальной учетной записи на данном компьютере, можно воспользоваться утилитой wmic, которая позволяет обратится к пространству имен WMI компьютера. Для получения SID локального пользователя test_user можно использовать утилиту WMIC:
wmic useraccount where name=’test_user’ get sid
Команда вернула нам SID указанного пользователя — S-1-5-21-1175651296-1316126944-203051354-1005.
Если нужно узнать SID текущего пользователя (под которым выполняется команда), используйте такую команду:
wmic useraccount where name=’%username%’ get 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 пользователя или группы в домене AD по имени
Вы можете узнать 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 -Identity ‘jjsmith’ | select SID
Вы можете получить SID группы AD с помощью другого командлета — Get-ADGroup:
Get-ADGroup -Filter
Если на вашем компьютере не установлен модуль 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 в одну строку:
(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:
Get-ADUser -Identity S-1-5-21-247647651-3952524288-2944781117-23711116
Чтобы найти имя доменной группы по известному SID используйте команду:
Get-ADGroup -Identity S-1-5-21-247647651-3952524288-2944781117-23711116
Также можно узнать SD группу и пользователя с помощью встроенных классов 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 (параметр IncludeDeletedObjects позволяет искать по удаленным объектам AD в корзине).
$sid = ‘S-1-5-21-2470146651-3951111111-2989411117-11119501’
Get-ADObject –IncludeDeletedObjects -Filter «objectSid -eq ‘$sid'» | Select-Object name, objectClass
SID
В нашем случае объект AD, который имеет данный SID, является компьютером (objectClass).
Как изменить SID в Windows 7 и Windows Server 2008 R2 с помощью sysprep
Недавно я уже писал, как проверить SID на Windows 7 и Windows Server 2008 R2, сегодня я расскажу вам о том, как изменить SID на Windows Server 2008 R2 и Windows 7 с помощью Sysprep. Ранее для изменения SID применялась утилита NewSID, однако сейчас ее использование е поддерживается
Microsoft, кроме того, использовать ее в новых ОС, типа Windows Server 2008 R2, просто опасно. Поэтому для изменения SID вашего ПК лучше всего использовать sysprep, использовать эту утилиту достаточно просто, и далее я опишу всю последовательность шагов.
Работу Sysprep я протестировал в Windows Server 2008 R2, а также в Windows7.
Во-первых, нажмите кнопку Пуск->Run, наберите Sysprep и нажмите OK.
В результате откроется папка , расположенная в каталоге c:\Windows\System32. Запустите приложение sysprep.exe.
Перед вами появится окно System Preparation Tool 3.14. В качестве действия по очистке системы выберите Enter System Out-of-Box Experience (OOBE) . Если вы хотите изменить SID, то выберите опцию Generalize (внимание: она не выбрана по умолчанию). В качестве опции отключении (Shutdown Options) выберите Reboot
(перезагрузка).
Выполнение процедуры sysprep займет некоторое время.
После перезагрузки вам придется указать ряд настроек, такие как страна, регион, время, дата и тип раскладки клавиатуры.
Кроме того, вам придется принять (ну или отклонить 🙂 ) лицензионное соглашение (EULA). Это все. После загрузки в консоли Server Manager вы можете убедиться, что все настройки изменились.
Теперь вы можете воспользоваться утилитой PsGetSid для того, чтобы узнать текущий новый SID вашей операционной системы.
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, — это воспользоваться командной строкой. Откройте командную строку и введите ниже команды, которые соответствуют вашим требованиям.
- Имя SID используемое в настоящее время: введите команду whoami /user и нажмите Enter.
- Имя SID определенного пользователя: введите в командую строку wmic useraccount where name=»хомячок» get name,sid . Где «хомячок» — это фактическое имя пользователя.
- Все SID пользователей в Windows: введите wmic useraccount get name,sid .
Как найти идентификатор безопасности (SID) пользователя в Windows
SID или идентификатор безопасности представляет собой уникальный код, который помогает в идентификации любого пользователя или группы учетных записей и компьютеров c операционной системой Windows. Он создается, как только создается учетная запись пользователя и является уникальным идентификатором. SID остается остается неизменный даже при смене имени пользователя.
Найти идентификатор безопасности (SID)
1: Использование WMIC
Прежде всего запустим комндную строку. Если у Вас Windows 10 в окне поиска нужно набрать “Командная строка” или “cmd”. Если Windows 8, нажмите комбинацию кнопок WINKEY + X , чтобы запустить контекстное меню кнопки «Пуск» и нажать «Командная строка» («Администратор»).
Теперь введите следующую команду:
и нажмите клавишу Enter
Вы получите результаты, аналогичные приведенному ниже фрагменте экрана. Мы видим имена и SID всех пользователей на данном компьютере.
Если нужно получить SID конкретного пользователя, формат команды будет такой:
где USER – имя интересующего нас пользователя.
2: Использование редактора реестра
Для начала запустите редактор реестра. Вы можете сделать это набрав “regedit” в поле поиска или в строке ввода после нажатия WINKEY + Х.
После того как вы открыли редактор реестра, перейдите к следующему пути
Теперь, внутри значений ProfileImagePath для каждого SID в папке ProfileList , вы можете найти желаемые идентификаторы безопасности и другие данные, такие как имена пользователей. Страница будет похожа на снимок экрана ниже.
Основные идентификаторы безопасности
SID в формате S-1-0-0 называется NULD SID. Он присваивается, когда его значение неизвестно или оно назначается группе без каких-либо членов.
SID в формате S-1-1-0 является общим SID. Он присваивается каждому пользователю.
Наконец, SID в формате S-1-2-0 называется локальным SID. Он назначается пользователю, который должен войти в систему локально.