Что это такое
Имя пользователя Windows 7 — название профиля. Используется чтобы на ПК работало независимо несколько человек, применяя свои настройки и программы.
Whoami – получение сведений о текущем пользователе windows
Команда WHOAMI используется для получения сведений об имени
пользователя и группе, а также о соответствующих идентификаторах
безопасности (SID), привилегиях, идентификаторах входа (ID) текущего
пользователя (токене доступа) на локальном компьютере. При запуске whoami.exe без параметров, отображается имя пользователя в формате NTLM (доменпользователь).
Формат командной строки:
Синтаксис 1: WHOAMI [/UPN | /FQDN | /LOGONID] Синтаксис 2: WHOAMI { [/USER] [/GROUPS] [/PRIV] } [/FO ] [/NH] Синтаксис 3: WHOAMI /ALL [/FO ] [/NH]
Параметры командной строки:
/UPN Отображение имени пользователя в формате имени участника-пользователя (UPN). /FQDN Отображение имени пользователя в формате полного доменного имени (FQDN). /USER Отображение сведений о текущем пользователе вместе с идентификатором безопасности (SID). /GROUPS Отображение для текущего пользователя членства в группах, типа учетной записи, идентификаторов безопасности (SID) и атрибутов. /PRIV Отображение привилегий безопасности текущего пользователя. /LOGONID Отображение идентификатора текущего пользователя. /ALL Отображение имени пользователя, членства в группах, идентификаторов безопасности (SID) и привилегий для токена доступа текущего пользователя. /FO Формат вывода. Допустимые значения TABLE, LIST, CSV. Заголовки столбцов в формате CSV не отображаются. Формат по умолчанию: TABLE. /NH Указывает, что строка заголовков столбцов не отображается при выводе. Допускается только для форматов TABLE и CSV. /? Вывод справки по использованию.
Примеры использования 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 текущего пользователя, принадлежности к группам и перечень привилегий.
Формат отображаемой информации:
Сведения о пользователе ---------------- Пользователь SID ============ ============================================ domuseradm S-1-5-21-56653307-3472606255-1660535541-7069 Сведения о группах ----------------- Группа Тип SID Атрибуты =============================================== ======================= ================= ============= Все Хорошо известная группа S-1-1-0 Обязательная BUILTINАдминистраторы Псевдоним S-1-5-32-544 Обязательная BUILTINПользователи удаленного рабочего стола Псевдоним S-1-5-32-555 Обязательная BUILTINПользователи Псевдоним S-1-5-32-545 Обязательная NT AUTHORITYИНТЕРАКТИВНЫЕ Хорошо известная группа S-1-5-4 Обязательная КОНСОЛЬНЫЙ ВХОД Хорошо известная группа S-1-2-1 Обязательная NT AUTHORITYПрошедшие проверку Хорошо известная группа S-1-5-11 Обязательная NT AUTHORITYДанная организация Хорошо известная группа S-1-5-15 Обязательная ЛОКАЛЬНЫЕ Хорошо известная группа S-1-2-0 Обязательная Обязательная меткаВысокий обязательный уровень Метка S-1-16-12288 Обязательная Сведения о привилегиях ---------------------- Имя привилегии Описание Область, край =============================== =========================================== ============= SeIncreaseQuotaPrivilege Настройка квот памяти для процесса Отключен SeSecurityPrivilege Управление аудитом и журналом безопасности Отключен SeTakeOwnershipPrivilege Смена владельцев файлов и других объектов Отключен SeLoadDriverPrivilege Загрузка и выгрузка драйверов устройств Отключен SeSystemProfilePrivilege Профилирование производительности системы Отключен SeSystemtimePrivilege Изменение системного времени Отключен SeProfileSingleProcessPrivilege Профилирование одного процесса Отключен SeIncreaseBasePriorityPrivilege Увеличение приоритета выполнения Отключен SeCreatePagefilePrivilege Создание файла подкачки Отключен SeBackupPrivilege Архивация файлов и каталогов Отключен SeRestorePrivilege Восстановление файлов и каталогов Отключен SeShutdownPrivilege Завершение работы системы Отключен SeDebugPrivilege Отладка программ Отключен SeSystemEnvironmentPrivilege Изменение параметров среды изготовителя Отключен SeChangeNotifyPrivilege Обход перекрестной проверки включен SeRemoteShutdownPrivilege Принудительное удаленное завершение работы Отключен SeUndockPrivilege Отключение компьютера от стыковочного узла Отключен SeManageVolumePrivilege Выполнение задач по обслуживанию томов Отключен SeImpersonatePrivilege Имитация клиента после проверки подлинности включен SeCreateGlobalPrivilege Создание глобальных объектов включен SeIncreaseWorkingSetPrivilege Увеличение рабочего набора процесса Отключен SeTimeZonePrivilege Изменение часового пояса Отключен SeCreateSymbolicLinkPrivilege Создание символических ссылок Отключен
Команду 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
Если данный командный файл будет запущен от имени пользователя, то фон консоли станет красным и пользователю будет выдано сообщение
”Этот командный файл должен выполняться от имени администратора”. Если от имени Администратора – фон консоли станет белым и выполнится команда удаления всех теневых копий (максимально освободить дисковое пространство)
Запуск скрипта
Скрипт должен быть запущен с админскими правами на удалённый компьютер.
Чтобы использовать этот скрипт в CMD (BAT) файле, можно запустить его в командном файле через CScript, например:
Как определить текущего пользователя
Задача определения текущего пользователя, т.е. пользователя, посредством использования учетной записи которого осуществлен вход в систему компьютера, в операционной системе Microsoft Windows может быть решена с помощью стандартной встроенной утилиты Whoami.exe.
Как узнать имя пользователя в windows 7
Нажмите «Пуск». Откроется меню, вверху отобразится имя.
Как узнать имя пользователя компьютера windows 7 штатными средствами ос
Нажмите на кнопке «Пуск» ПКМ, выберите «Управление». Перейдите:
Определение имени пользователя в командной строке или bat файле
Простейший способ получить эту информацию – выполнить команду nbtstat -a BUH1, которая даст примерно такой вывод:
Определение имени пользователя в скрипте через wmi
Поэтому надёжнее воспользоваться возможностями WMI (Windows Management Instrumentation) с помощью, например, WSH & JScript (то же самое можно написать и на VBScript, но я предпочитаю JScript).
Применяем горячие клавиши
Нажмите «Ctr Shif Esc». На вкладке «Пользователи» посмотрите имя:
Реализация с помощью cmd.
Сбор информации будем осуществлять использованием переменных среды Windows и выполнением сценариев WMI.
Для вывода всех переменных окружения в Windows и их значений служит команда set.
Для получения сведений об оборудовании и системе, управления процессами и их компонентами, а также изменения настроек с использованием возможностей инструментария управления Windows (Windows Management Instrumentation или WMI) служит команда WMIC.
Подсказку по работе с утилитой wmic.exe можно получить по команде:
- wmic /? — отобразить общую справку.
- wmic /?:BRIEF — отобразить краткую справку.
- wmic /?:FULL — отобразить полную справку.
Мы будем использовать:
- BASEBOARD (управление системной платой);
- COMPUTERSYSTEM (управление компьютером);
- CPU (управление ЦП);
- DISKDRIVE (управление физическими дисками);
- MEMORYCHIP (информация о микросхемах памяти).
Скрипт содержит много циклов с FOR.Отличительной особенностью FOR /F является умение работать через токены, а также поддержка дополнительных ключевых слов:
- skip (пропуск определенного кол-ва обрабатываемых строк от начала файла);
- delims (задать другой разделитель(-ли), по умолчанию, пробел и знак табуляции);
- tokens (количество получаемых токенов (подстрок) в теле цикла и пределы разбивки по разделителю). Также можно задать конкретный № токена, который попадет в первую переменную цикла;
- usebackq (изменение правил использования кавычек внутри IN (…)).
Ниже скрипт.
Реализация с помощью powershell.
В оболочке PowerShell, перед тем как запускать скрипт, нужно выполнить команду, разрешающую выполнение неподписанных скриптов для текущего сеанса оболочки:
Set-ExecutionPolicy RemoteSigned -Scope Process
Сбор информации будет осуществляться использованием в основном Get-WmiObject -Class win32, все просто, работа с циклами.
Мы будем использовать:
- Get-WmiObject -Class win32_processor;
- Get-WmiObject -Class win32_baseboard;
- Get-WmiObject Win32_PhysicalMemory;
- Get-PhysicalDisk;
- Get-WmiObject -Class Win32_ComputerSystem;
- Get-WmiObject Win32_NetworkAdapter;
- Win32_NetworkAdapterConfiguration.
Есть небольшие сложности при определении IP-адреса активной сетевой карты. Для этого применяем фильтр NetConnectionStatus — «2», после берем информацию mac-адрес от класса Win32_NetworkAdapter и IP-адрес из класса Win32_NetworkAdapterConfiguration и объединяем в один запрос:
Смотрим в командной строке
Нажмите «Win R», пропишите команду «cmd».
Результат сразу отобразится:
Если возникла ошибка, пропишите команду:
Смотрим информацию в ос
Нажмите «Win R» пропишите команду «msinfo32».
Посмотрите информацию:
Описанные способы позволяют посмотреть текущего пользователя. Что делать если их несколько?
Вывод
Используйте описанные рекомендации, и работа будет удобнее. Это важно если ПК используют 2-3 человека.