Как узнать имя пользователя в Windows 10
Если на одном компьютере создано несколько учетных записей, может потребоваться выяснить, под каким аккаунтом работает операционная система Windows 10 в данный момент. Из этой статьи вы узнаете, где можно посмотреть имя текущего пользователя.
Узнаём имя пользователя в меню «Пуск»
Наиболее простой способ узнать имя пользователя — открыть меню «Пуск» и кликнуть на кнопку «Развернуть» — иконку с тремя горизонтальными полосками. Ниже Вы увидите имя пользователя, авторизованного в системе в данный момент.

Кликаем на кнопку «Развернуть» в меню «Пуск»
Узнаём имя текущего пользователя через «Параметры Windows»
- С помощью горячих клавиш Windows + I открываем окно «Параметры Windows» и переходим в раздел «Учетные записи».

Открываем раздел «Учетные записи» в «Параметрах Windows»

Смотрим сведения о текущей учетной записи
Узнаём имя текущего пользователя в приложении «Сведения о системе»
Посмотреть имя текущего пользователя можно в классическом приложении Windows 10 «Сведения о системе».
-
Нажимаем на значок лупы в панели задач, начинаем вводить название приложения, и, когда оно будет найдено, запускаем его.

Находим приложение «Сведения о системе»

Имя пользователя в окне «Сведения о системе»
Узнаём имя пользователя в «Диспетчере задач»
- Нажимаем комбинацию клавиш Ctrl + Shift + Esc для запуска «Диспетчера задач».

Открываем вкладку «Пользователи»
Смотрим имена пользователей в «Панели управления»
- Снова воспользуемся системным поиском, чтобы найти «Панель управления» — кликаем на иконку лупы в панели задач и печатаем название приложения.

Ищем «Панель управления»

Открываем раздел «Учетные записи пользователей»

Кликаем на «Управление другой учетной записью», чтобы увидеть всех пользователей
Смотрим имена пользователей через командную строку
Для тех, кто не ищет лёгких путей, есть возможность посмотреть список всех пользователей в системе через командую строку.
-
Откроем контекстное меню кнопки «Пуск» с помощью правой кнопки мыши или сочетания клавиш Windows + X и запустим утилиту «PowerShell» от имени администратора.

Запускаем «PowerShell» от имени администратора

Выполняем команду «net user»
Теперь вы в курсе, где посмотреть список всех учетных записей в Windows 10, а также имя текущего пользователя системы.
Как узнать SID пользователя или по известному SID определить его имя


Если заголовок поста сразу вселил недоумение в вашу голову, его можно смело пропускать — так как тема весьма специфичная. Для оставшихся любопытствующих, чуть позже дам краткую справку, чтобы стало понятнее, но для начала расскажу что же меня сподвигло всё это написать.
Сюжет, наверное, знаком многим админам. в какой-то момент тебе говорят что на сервере пропала какая-то папка, а возможно и не одна, причем пропала сама собой, никто не трогал. В чудесные исчезновения я давно не верю, и начинаются поиски пропажи. Алгоритм уже отработан — для начала смотрим на наличие скрытых файлов в каталоге, где жила потеряшка, проходим там прогой R-Studio и если ничего не находится, то скорее всего и не удалялось, а просто перемещено. и возможно в корзину. Круг подозреваемых обычно ограничен, но иногда быстрее в мусорках пользователей порыться тем же Total Commander, включив отображение системных файлов. Корзины пользователей имеют уникальный идентификатор и лежат в общем каталоге $RECYCLE.BIN на дисках. Вот мы и подобрались к главной теме.
Итак, в Windows, любой учетной записи пользователя присваивается уникальный идентификатор безопасности SID (Security Identifier). По сути, операционная система оперирует именно SID-ами, а не именами пользователей. Если вы когда-либо назначали права доступа к папкам или файлам разным пользователям, а потом какого-то пользователя удаляли из системы, то могли видеть оставшиеся SID в свойства ресурса.
Стоит заметить, что, на самом деле, не все SID уникальны, и у встроенных учетных записей (Администратор, Гость), они постоянны. SID-ы локальных учёток хранятся в базе данных диспетчера учетных записей SAM (Security Account Manager), для доменных, соответсвенно в Active Directory.
Как узнать SID пользователя или по известному SID определить его имя?
Есть несколько способов это сделать. Проще всего посмотреть SID текущего пользователя с помощью утилиты whoami. Для этого в консоли cmd и выполним команду:
whoami /user
Сведения о пользователе ---------------- Пользователь SID ================= =========================================== srv\администратор S-1-5-21-1717474732-638561625-496602587-500
Как видите, я выполнил вход под админом, но это не интересно. Гораздо полезнее узнать SID произвольного пользователя. Для этого воспользуемся утилитой WMIC из Windows Management Instrumentation (WMI).
Посмотрим SID пользователя Kirill можно такой командой:
wmic useraccount where name='test_user' get sid
SID S-1-5-21-1717474732-638561625-496602587-1004
Определение имени пользователя по SID (обратная процедура) будет выглядеть так:
wmic useraccount where sid='S-1-5-21-1717474732-638561625-496602587-1004' get name
Аналогичные действия можно проводить и на PowerShell, но я в нём не силён, инфа есть в сети, кто заинтересовался данной темой почитает, для моей задачи было достаточно и этого. Как и предполагалось, потерянная папка нашлась у одного из пользователей в корзине.
Подписывайтесь на канал
Яндекс.Дзен и узнавайте первыми о новых материалах, опубликованных на сайте.
Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.
Как узнать SID пользователя, группы или компьютера по имени?

06.10.2022

itpro

Active Directory, PowerShell, Windows 10, Windows Server 2019

комментариев 10
SID (Security IDentifier) – это уникальный идентификатор, который присваивается пользователям, группам, компьютерам или другим объектам безопасности при их создании в Windows или Active Directory. Windows использует SID, а не имя пользователя для контроля доступа к различным ресурсам: сетевым папкам, ключам реестра, объектам файловой системы (NTFS разрешения), принтерам и т.д. В этой статье мы покажем несколько простых способов получить SID пользователя, группы или компьютера, и обратную процедуру – получить объект по известному SID.
Что такое SID объекта в Windows?
Как мы уже сказали, SID (security identifier) позволяет уникально идентифицировать пользовали, группу или компьютер в пределах определенной области (домена или локального компьютера). SID представляет собой строку вида:
S-1-5-21- 2927053466-1818515551-2824591131 — 1103 .
В данном примере:
- 2927053466-1818515551-2824591131 – это уникальный идентификатор домена, выдавшего SID (у всего объекта в одном домене эта часть будет одинакова)
- 1103 – относительный идентификатор безопасности объекта (RID). Начинается с 1000 и увеличивается на 1 для каждого нового объекта. Выдается контроллером домена с FSMO ролью RID Master)
SIDы объектов Active Directory хранятся в базе ntds.dit, а SIDы локальных пользователей и групп в локальной базе диспетчера учетных записей Windows (SAM, Security Account Manager в ветке реестра HKEY_LOCAL_MACHINE\SAM\SAM).
В Windows есть так называемые известные идентификаторы безопасности (Well-known SID). Это SID встроенных (BuiltIn) пользователей и групп, которые есть на любых компьютерах Windows. Например:
- S-1-5-32-544 – встроенная группу Administrators
- S-1-5-32-545 – локальные пользователи
В Windows можно использовать различные средства для преобразования SID -> Name и Username -> SID: утилиту whoami, wmic, WMI, классы PowerShell или сторонние утилиты.
Как получить SID локального пользователя?
Чтобы получить SID локальной учетной записи, можно воспользоваться утилитой wmic, которая позволяет обратится к пространству имен WMI (Windows Management Instrumentation) компьютера.
wmic useraccount where name=’test_user’ get sid

Команда может вернуть ошибку, если репозиторий 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.
Get-LocalUser -Name ‘test_user’ | Select-Object Name, SID

По аналогии можно получить 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 своей доменной учетной записи командой:

Получить 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

Вы можете получить SID группы AD с помощью командлета Get-ADGroup:
Get-ADGroup -Filter | Select 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 в одну строку:
(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

SID локального компьютера (Machine SID) можно получить с помощью бесплатной утилиты PsGetsid (https://docs.microsoft.com/en-us/sysinternals/downloads/psgetsid): Но ее придется скачивать и устанавливать на каждый компьютер вручную.
Или просто, обрезав последние 4 символа RID и SID любого локального пользователя:
$user=(Get-LocalUser Administrator).sid
$user -replace «.$»

Важно, чтобы у каждого компьютера в домене был уникальный локальный 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

Также можно узнать получить 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
Параметр IncludeDeletedObjects позволяет искать по удаленным объектам в корзине Active Directory.

В нашем случае объект AD, который имеет данный SID, является компьютером (objectClass=computer).
Предыдущая статья Следующая статья
Читайте далее в разделе Active Directory PowerShell Windows 10 Windows Server 2019



Get-ADUser: получение информации о пользователях Active Directory из PowerShell
Windows LAPS: Управление паролями локальных администраторов на компьютерах в AD
Настройка параметров прокси-сервера в Windows с помощью групповых политик
Несколько способов получить sid пользователя Windows

В операционных системах семейства Windows каждый пользователь имеет свой уникальный идентификационный номер, он же sid (сокращение от Security ID). Он используется для контроля доступа к различным ресурсам (файлам, реестр, устройства и т. д.). Ниже несколько примеров того, как можно узнать sid пользователя/пользователей через командную строку.
Получаем sid пользователя
Получить sid пользователя, известного системе можно через командную строку:
wmic useraccount where name="имя_пользователя" get sid
где «имя_пользователя» нужно заменить на имя пользователя. А так же можно провести поиск наоборот — получить имя пользователя по sid:
wmic useraccount where sid="sid_пользователя" get name
Если нужно получить sid пользователя, под которым работаете, то можно выполнить следующую команду:
wmic useraccount where name='%username%' get sid
Для получения sid текущего пользователя домена Active Directory нужно выполнить другую команду:
whoami /user
В домене Active Directory так же можно провести поиск sid’ов пользователей, которые никогда не логинились на компьютере:
wmic useraccount where (name="имя_пользователя" and domain="имя домена") get name,sid