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

Команда WHOAMI – получение информации о текущем пользователе Windows

&nbsp &nbsp Команда WHOAMI используется для получения сведений об имени пользователя и группе, а также о соответствующих идентификаторах безопасности (SID), привилегиях, идентификаторах входа (ID) текущего пользователя (токене доступа) на локальном компьютере. При запуске whoami.exe без параметров, отображается имя пользователя в формате NTLM (домен\пользователь).

Формат командной строки:

Параметры командной строки:

Примеры использования WHOAMI :

WHOAMI — отобразить имя текущего пользователя в формате «домен\имя»

WHOAM /UPN — отобразить имя текущего пользователя в формате «имя@домен»

WHOAM /FQDN — отобразить имя текущего пользователя в формате полного доменного имени (FQDN).

WHOAMI /LOGONID — отобразить идентификатор текущего пользователя.

WHOAMI /USER — отобразить имя и SID текущего пользователя.

WHOAMI /USER /FO LIST — то же, что и в предыдущем случае, но с выводом данных в виде списка.

WHOAMI /GROUPS — отобразить список групп, членом которых является текущий пользователь.

WHOAMI /GROUPS /FO CSV — то же, что и в предыдущем случае, но с выводом результатов в виде полей, разделяемых запятой.

WHOAMI /GROUPS /FO CSV > C:\MyGroups.csv — то же, что и в предыдущем примере, но с выводом результатов в файл C:\MyGroups.csv.

WHOAMI /PRIV — отобразить список привилегий текущего пользователя.

WHOAMI /PRIV /FO TABLE — то же, что и в предыдущем примере, но с отображением результатов в виде таблицы.

WHOAMI /ALL — отобразить информацию о SID текущего пользователя, принадлежности к группам и перечень привилегий.

Формат отображаемой информации:

Команду Whoami можно использовать в командных файлах в качестве средства проверки того факта, что командный файл был запущен от имени администратора в среде Windows 7/8. Для этого достаточно сравнить набор привилегий при выполнении команды в обычном режиме и при выполнении в режиме запуска от имени администратора. Например, если удаленное выключение компьютера доступно только с правами администратора системы, можно, используя команду поиска FIND , определить наличие строки «SeRemoteShutdownPrivilege» в результатах выполнения команды whoami /priv для текущего пользователя. Например, так:

@echo OFF
WHOAMI /PRIV | find /i «SeRemoteShutdownPrivilege»
if %ERRORLEVEL% == 0 goto admin
echo Пользователь не имеет прав администратора.
REM часть кода, исполняемого при отсутствии прав администратора
pause
exit
:admin
REM часть кода, исполняемого при наличии прав администратора
ECHO . Командный файл запущен от имени администратора.
pause
exit

REM Этот командный файл должен выполняться от имени Администратора
@echo OFF
WHOAMI /PRIV | find /i «SeRemoteShutdownPrivilege»
if %ERRORLEVEL% == 0 goto admin
color CF
msg console Этот командный файл должен выполняться от имени администратора.
pause
exit
:admin
color f0
Rem Удалить все теневые копии
vssadmin delete shadows /all

Если данный командный файл будет запущен от имени пользователя, то фон консоли станет красным и пользователю будет выдано сообщение ”Этот командный файл должен выполняться от имени администратора”. Если от имени Администратора – фон консоли станет белым и выполнится команда удаления всех теневых копий (максимально освободить дисковое пространство)

Читайте также:  Как включить распознавание устройств windows 10

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

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

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

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

Существует два типа 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-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.

Читайте также:  Openvpn ошибка all tap windows adapters on this system are currently in use

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

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

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

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

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

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

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

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

Get-ADComputer W10-CL01 -prop sid

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

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

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

Сюжет, наверное, знаком многим админам. в какой-то момент тебе говорят что на сервере пропала какая-то папка, а возможно и не одна, причем пропала сама собой, никто не трогал. В чудесные исчезновения я давно не верю, и начинаются поиски пропажи. Алгоритм уже отработан — для начала смотрим на наличие скрытых файлов в каталоге, где жила потеряшка, проходим там прогой R-Studio и если ничего не находится, то скорее всего и не удалялось, а просто перемещено. и возможно в корзину. Круг подозреваемых обычно ограничен, но иногда быстрее в мусорках пользователей порыться тем же Total Commander, включив отображение системных файлов. Корзины пользователей имеют уникальный идентификатор и лежат в общем каталоге $RECYCLE.BIN на дисках. Вот мы и подобрались к главной теме.

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

Читайте также:  Virtualbox linux установка образа

Стоит заметить, что, на самом деле, не все SID уникальны, и у встроенных учетных записей (Администратор, Гость), они постоянны. SID-ы локальных учёток хранятся в базе данных диспетчера учетных записей SAM (Security Account Manager), для доменных, соответсвенно в Active Directory.

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

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

Как видите, я выполнил вход под админом, но это не интересно. Гораздо полезнее узнать SID произвольного пользователя. Для этого воспользуемся утилитой WMIC из Windows Management Instrumentation (WMI).

Посмотрим SID пользователя Kirill можно такой командой:

Определение имени пользователя по SID (обратная процедура) будет выглядеть так:

Аналогичные действия можно проводить и на PowerShell, но я в нём не силён, инфа есть в сети, кто заинтересовался данной темой почитает, для моей задачи было достаточно и этого. Как и предполагалось, потерянная папка нашлась у одного из пользователей в корзине.

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

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

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

Для преобразования username в SID можно воспользоваться отличий утилитой из комплекта Sysinternals — PsGetSid. Но ее придется выкачивать и устанавливать на каждую систему вручную.

Гораздо проще воспользоваться утилитой командной строки или скриптом Powershell

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

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

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

На PowerShell скрипт, выдающий тот же результат можно реализовать с помощью двух классов SecurityIdentifier и NTAccount.

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

Получить SID доменного пользователя

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

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

Get-ADUser -Identity ‘jjsmith’ | select SID

Если модуль AD для PowerShell отсутствует, через Powershell можно запросить данные из домена так:

$objUser = New-Object System.Security.Principal.NTAccount(«corp.wintpro.ru»,»jjsmith»)
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
$strSID.Value

Эта же команда в одну строку:

(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 при помощи модуля AD для Powershell:

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

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

Попробуйте наши услуги обслуживания и получите третий месяц обслуживания в подарок!

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