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

Иногда может понадобится проверить какие в данный момент залогинены в системе, то есть являются активными. Такую информацию можно использовать для аудита, например для проверки какие учетные записи за какими компьютерами сидят или для последующей перезагрузки сервера, что бы не останавливать работу коллег. В примерах ниже рассмотрено как выполнять удаленные команды для получения активных пользователей и возврата включенных пользователей Active Directory.

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

Я не могу вспомнить готовую команду Powershell, которая бы вернула логин пользователя, но такая возможность есть через WMI:

Get-WmiObject -Class Win32_ComputerSystem | Select-Object UserName

Есть еще вариант использовать CIM, который может работать немного быстрее:

Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object UserName

Залогиненные пользователи с Win32_ComputerSystem и Win32_ComputerSystem

Обе команды могут работать удаленно если добавить атрибут ComputerName:

Get-WmiObject -ComputerName 'localhost' -Class Win32_ComputerSystem | Select-Object UserName

Получение активных сеансов в Powershell удаленно

Если вы планируете выполнять эти команды удаленно, то может понадобится выполнить предварительные настройки в виде открытия портов и необходимых правах.

Получить только имя пользователя можно так:

$userinfo = Get-WmiObject -ComputerName 'localhost' -Class Win32_ComputerSystem
$user = $userinfo.UserName -split '\'
$user[1]

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

Как вы знаете в Winodws есть так же параллельные сеансы сервисов. Если вам нужно вернуть имена этих аккаунтов нужно использовать класс «win32_LoggedOnUser»:

Get-CimInstance -ComputerName 'localhost' -Class win32_LoggedOnUser | ft

Получение всех активных сеансов пользователей в Powershell

Получение списка компьютеров

Если у вас нет списка компьютеров к которым вы планируете подключиться и узнать активного пользователя — это можно сделать через AD. На примере ниже будут возвращены все компьютеры:

Get-ADComputer -Filter *

Получение списка компьютеров в Powershell

Операция по получению списка компьютеров может быть очень долгой, если у вас большой парк ПК в AD. Вы можете вернуть только компьютеры, которые не отключены в AD (Disable) следующим способом:

Get-ADComputer -Filter * | where Enabled -eq $True

Получение включенных компьютеров AD в Powershell

Можно использовать и фильтрацию. Так я верну компьютеры имена которые начинаются на «CL»:

Get-ADComputer -Filter {Name -like 'CL*'} | where Enabled -eq $True

Фильтрация списка компьютеров в Powershell

Получить список имен мы можем так:

$pc = Get-ADComputer -Filter {Name -like 'CL*'} | where Enabled -eq $True
$pc.Name

Фильтрация списка компьютеров в Powershell

Если у вас список компьютеров не относится к AD или имеет другой формат — то просто преобразуйте его в массив:

# Текст с именами компьютеров
$pc = 'Computer1,Computer2,Computer3'
# Преобразование в массив
$pc_array = $pc -split ','
$pc_array

Split в Powershell 

Удаленное получение залогиненных пользователей

Выше уже рассматривался вариант получения имени пользователя удаленно используя WMI и CIM. Если обе команды, то всех  пользователей активных в данный момент мы можем получить так:

# Текст с именами компьютеров
$computers = (Get-AdComputer -Filter *).Name
# Удаленное получение пользователей
foreach ($computer in $computers){
    Get-CimInstance -ComputerName $computer -ClassName Win32_ComputerSystem | Select-Object UserName
}

Такой подход может привести к ошибкам так как мы не проверяем включены ли компьютеры:

Обход ошибок в Powershell

Мы можем просто не выводить ошибки с помощью «-ErrorAction SilentlyContinue» или заранее пинговать (что было бы правильнее с точки зрения времени выполнения). В примере ниже я так же разбиваю имя компьютера и логин в более удобный формат:

# Текст с именами компьютеров
$computers = (Get-AdComputer -Filter *).Name
# Удаленное получение имен учетных записей
foreach ($computer in $computers){
    $result = Get-CimInstance -ComputerName $computer -ClassName Win32_ComputerSystem -ErrorAction SilentlyContinue
    $computer_login = $result.UserName -split '\'
    if ($computer_login){
        Write-Host 'ComputerName: ' $computer_login[0]
        Write-Host 'UserName: ' $computer_login[1]
       }
}

Обход ошибок в Powershell с ErrorAction

Если вы не хотите выполнять команды удаленно через WMI, то вы можете использовать PSRemoting. От так же требует предварительных настроек, которые описаны в статье «Удаленное управление через Powershell». Команда, которая использует PSRemoting, будет выглядеть примерно так же:

# Текст с именами компьютеров
$computers = (Get-AdComputer -Filter *).Name
# Удаленное получение имен учетных записей
foreach ($computer in $computers){
    $result = Invoke-Command -ComputerName $computer `
          -ScriptBlock {
              Get-WMIObject -ClassName Win32_ComputerSystem `
                            -ErrorAction SilentlyContinue
                       } `
          -ErrorAction SilentlyContinue
    $computer_login = $result.UserName -split '\'
    if ($computer_login){
        Write-Host 'ComputerName: ' $computer_login[0]
        Write-Host 'UserName: ' $computer_login[1]
       }
}

Получение списка активных сеансов пользователей в Powershell

Получение включенных пользователей AD

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

Get-AdUser -Filter * | where 'Enabled' -eq $True

Фильтрация включенных пользователей в AD с Powershell

Для возврата только отключенных учетных записей используйте $False.

Такой подход работает и с объектами компьютеров в AD:

Get-AdComputer -Filter * | where 'Enabled' -eq $False

Для последующей выгрузки данных в Excel почитайте статью «Как в Powershell выгрузить из AD пользователей и группы CSV».

Whoami или WMI

Вы можете вспомнить команду, которая так же возвращает имя пользователя:

whoami

whoami в Powershell

Как можно увидеть она вернет ту же информацию, что и класс WMI. Ситуация меняется, когда эти команды используются удаленно:

# Пользователь вошедший в Windows и открывший Powershell
whoami
# Пользователь, который будет удаленно подключатся через Powershell
$new_psuser = Get-Credential 'admin'
# Способ с whoami
Invoke-Command -ComputerName 'localhost' `
               -Credential $new_psuser `
               -ScriptBlock {whoami}
# Способ с WMI
Invoke-Command -ComputerName 'localhost' `
               -Credential $new_psuser `
               -ScriptBlock {(Get-WmiObject -Class Win32_ComputerSystem).UserName}

Разница WMI и whoami в Powershell

Как видно, в случае с whoami у нас вернулось имя учетной записи выполнившей команду Powershell, а с WMI пользователь Windows. 

Теги:

#powershell

#wmi

#ad

Время на прочтение
18 мин

Количество просмотров 24K

Как-то давно на хабре публиковалась статья Опытные мелочи Windows-админа. В ней рассказывалось как быстро и достаточно эффективно находить компьютеры на которых залогинился тот или иной пользователь.

Демонстрация работы скрипта env.search

Демонстрация работы скрипта env.search

Мне эта идея понравилась, т.к. всё делается достаточно просто, быстро и без модификации схемы Active Directory. Я постепенно улучшал изложенные в статье подходы и в итоге появились три скрипта, которыми я и хочу поделится с вами.

Вывод в консоль переменных созданных скриптом env

Вывод в консоль переменных созданных скриптом env
  1. env – с помощью этого скрипта получаем данные по компьютеру и добавляем эти данные во временные переменные среды.

  2. env.send – с помощью этого скрипта данные из переменных среды передаём в описание компьютера в Active Directory.

  3. env.search – с помощью этого скрипта ищем нужный нам компьютер в Active Directory и подключаемся к нему.

На самом деле скрипты более универсальные и с помощью них можно делать не только изложенные выше действия, а например:

Результат работы скрипта env.send

Результат работы скрипта env.send
  • Можно делать инвентаризацию компьютеров по сети в csv файл или в папку с ini файлами.

  • При отсутствии Active Directory можно по данным из переменных среды автоматически создавать ярлычок, который в своём названии будут содержать нужные данные по компьютеру, а при клике подключатся к нему или делать другое полезное системному администратору действие.

  • Поиск нужных компьютеров можно выполнять не только в Active Directory, но и в простом хранилище в виде папки с ini файлами.

  • А так же можно использовать временные переменные среды в других скриптах, например для установки программного обеспечения нужной разрядности и т.д.

Ниже привожу описание всех скриптов, что бы можно было более детально ознакомится с их возможностями. Надеюсь что они будут вам полезны, так же как мне. Сами скрипты и их исходные коды доступны в моём профиле на GitHub.

env

Описание

JScript для добавления в переменные среды временных переменных. Которые затем можно использовать в вызове других скриптов и приложений. Данные для переменных получаются через WMI с локального или удалённого компьютера в сети. Дополнительно переменные можно импортировать из файла и экспортировать в файл, поддерживается несколько форматов.

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

Использование

В командной строке Windows введите следующую команду. Все параметры можно передавать в произвольном порядке. Если необходимо скрыть отображение окна консоли, то вместо cscript можно использовать wscript.

cscript env.min.js [\<context>] [<input>@<charset>] [<output>] [<option>...] ...
  • <context> — Сетевое имя или ip адрес компьютера, в контексте которого нужно получить данные для переменных.

  • <input> — Формат текстовых данных стандартного потока ввода для импорта переменных.

    • ini — Получает из потока данные для переменных в ini формате.

    • csv — Получает данные в csv формате (заглавное написание ожидает ещё и заголовок).

    • tsv — Получает данные в tsv формате (заглавное написание ожидает ещё и заголовок).

  • <charset> — Кодировка текстовых данных, направленных в стандартный поток ввода (можно использовать значение auto).

  • <output> — Формат текстовых данных стандартного потока вывода для экспорта переменных.

    • ini — Отправляет в поток данные переменных в ini формате.

    • csv — Отправляет данные в csv формате (заглавное написание добавляет ещё и заголовок).

    • tsv — Отправляет данные в tsv формате (заглавное написание добавляет ещё и заголовок).

  • <option> — Дополнительные опции (можно указать несколько).

    • silent — Последующие команды выполнить без отображения.

    • nowait — Последующие команды выполнить без ожидания.

  • ... — Далее указывается командная строка для выполнения, в которой будут доступны эти переменные среды.

Переменные среды

Скрипт добавляет описанные ниже временные переменные в среду процесса. Если нет данных для формирования переменной, то переменная не создаётся.

Операционная система

  • SYS-ARCHITECTURE — Архитектура операционной системы x64 и x86.

  • SYS-DESCRIPTION — Описание системы (компьютера), заданное пользователем.

  • SYS-DRIVE — Буква системного диска (вместе с двоеточием).

  • SYS-INSTALL — Дата и время установки системы в формате ДД.ММ.ГГГГ ЧЧ:ММ:СС.

  • SYS-INSTALL-DATE — Только дата установки системы в формате ДД.ММ.ГГГГ.

  • SYS-KEY — Ключи активации операционной системы.

  • SYS-NAME — Заданное производителем полное название операционной системы.

  • SYS-RESET — Дата и время перезагрузки системы в формате ДД.ММ.ГГГГ ЧЧ:ММ:СС.

  • SYS-RESET-DATE — Только дата перезагрузки системы в формате ДД.ММ.ГГГГ.

  • SYS-SERIAL — Серийный номер операционной системы.

  • SYS-TIME — Текущая дата и время в системе в формате ДД.ММ.ГГГГ ЧЧ:ММ:СС.

  • SYS-TIME-DATE — Только текущая дата в системы в формате ДД.ММ.ГГГГ.

  • SYS-VERSION — Версия операционной системы.

Пользователь

  • USR-ACCOUNT — Аккаунт пользователя, который последним использовал компьютер.

  • USR-DOMAIN — Доменная часть аккаунта пользователя.

  • USR-LOGIN — Часть логина в аккаунте пользователя.

  • USR-HOME — Полный путь к домашнему каталогу пользователя.

  • USR-PROFILE — Полный путь к папке профиля пользователя.

  • USR-NAME — Отображаемое имя пользователя.

  • USR-NAME-FIRST — Первая часть отображаемого имени пользователя.

  • USR-NAME-SECOND — Втор часть отображаемого имени пользователя.

  • USR-NAME-THIRD — Третья часть отображаемого имени пользователя.

  • USR-NAME-FOURTH — Четвёртая часть отображаемого имени пользователя.

  • USR-SID — Идентификатор безопасности пользователя.

Компьютер

  • DEV-NAME — Заданное производителем полное название модели.

  • DEV-DESCRIPTION — Формируемое скриптом описание компьютера из его характеристик.

  • DEV-BENCHMARK — Вычисляемый скриптом рейтинг производительности компьютера.

Материнская плата

  • PCB-NAME — Заданное производителем полное название модели.

  • PCB-SERIAL — Серийный номер материнской платы.

  • PCB-BIOS-MANUFACTURE — Название производителя BIOS материнской платы.

  • PCB-BIOS-RELEASE — Дата и время прошивки BIOS материнской платы.

  • PCB-BIOS-RELEASE-DATE — Только дата прошивки BIOS материнской платы.

  • PCB-BIOS-SERIAL — Серийный номер, хранящийся в BIOS материнской платы.

  • PCB-BIOS-VERSION — Версия прошивки BIOS материнской платы.

Центральный процессор

  • CPU-ARCHITECTURE — Архитектура центрального процессора x64 и x86.

  • CPU-CACHE-L1 — Размер L1 кэша с размерностью КБМБ и так далее.

  • CPU-CACHE-L2 — Размер L2 кэша с размерностью КБМБ и так далее.

  • CPU-CACHE-L3 — Размер L3 кэша с размерностью КБМБ и так далее.

  • CPU-CORE — Количество ядер центрального процессора.

  • CPU-NAME — Заданное производителем полное название модели.

  • CPU-SOCKET — Название сокета центрального процессора.

  • CPU-SPEED — Тактовая частота с размерностью МГцГГц и так далее.

  • CPU-SPEED-VAL — Значение тактовой частота в герцах.

  • CPU-VERSION — Версия релиза центрального процессора.

Оперативная память

  • RAM-SIZE — Объём оперативной памяти с размерностью МБГБ и так далее.

  • RAM-SIZE-VAL — Значение объёма оперативной памяти в байтах.

  • RAM-SPEED — Тактовая частота с размерностью МГцГГц и так далее.

  • RAM-SPEED-VAL — Значение тактовой частота в герцах.

Графический процессор

  • GPU-COLOR — Глубина цвета графического процессора с размерностью в битах.

  • GPU-COLOR-VAL — Значение глубины цвета графического процессора в битах.

  • GPU-FREQUENCY — Частота обновления с размерностью в Гц.

  • GPU-FREQUENCY-VAL — Значение частота обновления в герцах.

  • GPU-NAME — Заданное производителем полное название модели.

  • GPU-RESOLUTION — Разрешение экрана, подключенного к графическому процессору.

  • GPU-RESOLUTION-X — Разрешение экрана по горизонтали.

  • GPU-RESOLUTION-Y — Разрешение экрана по вертикали.

  • GPU-SIZE — Объём памяти с размерностью МБГБ и так далее.

  • GPU-SIZE-VAL — Значение объёма памяти графического процессора в байтах.

  • GPU-VERSION — Версия драйвера графического процессора.

Сетевой адаптер

  • NET-IP-V4 — IPv4 адрес активного сетевого адаптера.

  • NET-IP-V6 — IPv6 адрес активного сетевого адаптера.

  • NET-SUBNET-V4 — IPv4 маска подсети активного сетевого адаптера.

  • NET-SUBNET-V6 — IPv6 маска подсети активного сетевого адаптера.

  • NET-GATEWAY-V4 — IPv4 шлюз активного сетевого адаптера.

  • NET-GATEWAY-V6 — IPv6 шлюз активного сетевого адаптера.

  • NET-DNS-V4 — IPv4 адрес DNS сервера сетевого адаптера.

  • NET-DNS-V6 — IPv6 адрес DNS сервера сетевого адаптера.

  • NET-DHCP-V4 — IPv4 адрес DHCP сервера локальной сети.

  • NET-DOMAIN — Домен в котором зарегистрирован компьютер.

  • NET-HOST — Зарегистрированное сетевое имя компьютера.

  • NET-HOST-DN — Значение Distinguished Name компьютера в домене.

  • NET-MAC — Физический адрес активного сетевого адаптера.

  • NET-NAME — Заданное производителем название сетевого адаптера.

  • NET-RESET — Дата и время обновления адресов в формате ДД.ММ.ГГГГ ЧЧ:ММ:СС.

  • NET-RESET-DATE — Только дата обновления адресов в формате ДД.ММ.ГГГГ.

  • NET-SPEED — Скорость подключения с размерностью Мбит/сГбит/с и так далее.

  • NET-SPEED-VAL — Значение скорость подключения в битах в секунду.

Жёсткий диск

  • HDD-NAME — Заданное производителем название жёсткого диска.

  • HDD-SERIAL — Серийный номер жёсткого диска.

  • HDD-SIZE — Объём жёсткого диска с размерностью МБГБ и так далее.

  • HDD-SIZE-VAL — Значение объёма жёсткого диска в байтах.

  • HDD-VERSION — Версия прошивки жёсткого диска.

Твердотельный накопитель

  • SSD-NAME — Заданное производителем название твердотельного накопителя.

  • SSD-SERIAL — Серийный номер твердотельного накопителя.

  • SSD-SIZE — Объём твердотельного накопителя с размерностью МБГБ и так далее.

  • SSD-SIZE-VAL — Значение объёма твердотельного накопителя в байтах.

  • SSD-VERSION — Версия прошивки твердотельного накопителя.

Сменный накопитель

  • USB-NAME — Заданное производителем название сменного накопителя.

  • USB-SERIAL — Серийный номер сменного накопителя.

  • USB-SIZE — Объём сменного накопителя с размерностью МБГБ и так далее.

  • USB-SIZE-VAL — Значение объёма сменного накопителя в байтах.

  • USB-VERSION — Версия прошивки сменного накопителя.

Специализированный накопитель

  • SCM-NAME — Заданное производителем название специализированного накопителя.

  • SCM-SERIAL — Серийный номер специализированного накопителя.

  • SCM-SIZE — Объём специализированного накопителя с размерностью МБГБ и так далее.

  • SCM-SIZE-VAL — Значение объёма специализированного накопителя в байтах.

  • SCM-VERSION — Версия прошивки специализированного накопителя.

Оптический привод

  • ROM-NAME — Заданное производителем название оптического привода.

  • ROM-DRIVE — Буква оптического привода (вместе с двоеточием).

  • ROM-TYPE — Тип оптического привода DVD-RWCD и так далее.

Программное обеспечение

Браузер Google Chrome

  • APP-CHROME — Полный путь исполняемого файла приложения.

  • APP-CHROME-DIR — Полный путь каталога приложения.

Проигрыватель VLC Media Player

  • APP-VLC — Полный путь исполняемого файла приложения.

  • APP-VLC-DIR — Полный путь каталога приложения.

Приложение Spargo eFarma

  • APP-EFARMA-CLIENT — Полный путь исполняемого файла клиента.

  • APP-EFARMA-CASHER — Полный путь исполняемого файла кассы.

  • APP-EFARMA-UPDATER — Полный путь исполняемого файла сервера обновлений.

  • APP-EFARMA-LICENSE — Полный путь файла лицензии.

  • APP-EFARMA-DIR — Полный путь каталога приложения.

Приложение SoftLine Ulus

  • APP-ULUS — Полный путь исполняемого файла приложения.

  • APP-ULUS-DIR — Полный путь каталога приложения.

Приложение TeamViewer

  • APP-TEAMVIEWER-ID — Идентификатор компьютера.

Другие переменные

  • BAK-DRIVE — Буква диска для резервных копий (вместе с двоеточием).

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

Получение данных

Вывести в консоль все созданные переменные среды в контексте текущего компьютера.

cscript env.min.js ini

Вывести в консоль все созданные переменные среды в контексте компьютера RUS000WS001.

cscript env.min.js ini \RUS000WS001

Экспорт данных

Экспортировать все созданные переменные среды в ini файл с кодировкой CP 866 в контексте текущего компьютера.

cscript /nologo env.min.js ini > %COMPUTERNAME%.ini

Экспортировать все созданные переменные среды в ini файл с кодировкой UTF-16 LE в контексте текущего компьютера.

cscript /nologo /u env.min.js ini > %COMPUTERNAME%.ini

Экспортировать все созданные переменные среды в csv файл без заголовка и с кодировкой UTF-16 LE в контексте компьютера RUS000WS001.

cscript /nologo /u env.min.js \RUS000WS001 csv > RUS000WS001.csv

Экспортировать все созданные переменные среды в csv файл с заголовком и с кодировкой UTF-16 LE в контексте компьютера RUS000WS001.

cscript /nologo /u env.min.js \RUS000WS001 CSV > RUS000WS001.csv

Импорт данных

Импортировать переменные среды из ini файла с кодировкой CP 866 и вывести их в консоль.

cscript /nologo env.min.js ini@cp866 \ ini < %COMPUTERNAME%.ini

Импортировать переменные среды из ini файла с кодировкой UTF-16 LE и затем ещё и получить переменные среды в контексте компьютера RUS000WS001 и вывести их в консоль.

cscript /nologo /u env.min.js ini@auto \RUS000WS001 ini < RUS000WS001.ini

Импортировать переменные среды из csv файла с заголовком и с кодировкой UTF-16 LE и затем ещё и получить переменные среды в контексте компьютера RUS000WS001 и вывести их в консоль.

cscript /nologo /u env.min.js CSV@auto \RUS000WS001 ini < RUS000WS001.csv

Использование данных

Выполнить тихую установку msi пакета с именем, соответствующим разрядности операционной системы текущего компьютера.

cscript env.min.js %SYS-ARCHITECTURE%.msi /quiet /qn /norestart

Открыть в VLC Media Player воспроизведение mp4 видео файла с именем, соответствующим логину пользователя и не дожидаться окончания воспроизведения.

wscript env.min.js nowait "%APP-VLC%" %USR-LOGIN%.mp4

Открыть в Проводнике домашний каталог пользователя, который последним использовал удалённый компьютер RUS000WS001.

wscript env.min.js \RUS000WS001 explorer.exe "%USR-HOME%"

Инвентаризация компьютеров

Загрузить из txt файла список компьютеров и сохранить о них информацию в папке inventory в виде ini файлов.

for /f "eol=; tokens=* delims=, " %%i in (list.txt) do (
    cscript /nologo /u env.min.js \%%i ini > inventory%%i.ini
)

Загрузить из txt файла список компьютеров и сохранить о них информацию в один csv файл с заголовком.

cscript /nologo /u env.min.js \ CSV > inventory.csv
for /f "eol=; tokens=* delims=, " %%i in (list.txt) do (
    cscript /nologo /u env.min.js \%%i csv >> inventory.csv
)

Сконвертировать и объединить ini файлы из папке inventory в один tsv файл с заголовком.

cscript /nologo /u env.min.js \ TSV > inventory.tsv
for %%i in (inventory*.ini) do (
    cscript /nologo /u env.min.js \ ini@auto tsv < %%i >> inventory.tsv
)

env.send

Описание

JScript для отправки переменных среды в объект Active Directory по протоколу LDAP или в файл ярлыка в папке. Основная задача скрипта сохранить собранные данные с помощью другого скрипта env в любой атрибут (или атрибуты) объекта Active Directory или на основании этих данных создать по шаблону ярлык в папке. Чтобы затем использовать этот ярлык или данные из Active Directory в целях системного администрирования.

Использование

В командной строке Windows введите следующую команду. Если необходимо скрыть отображение окна консоли, то вместо cscript можно использовать wscript.

cscript env.send.min.js <mode> <container> [<output>...] \ [<input>...]
  • <mode> — Режим отправки переменных (заглавное написание выполняет только эмуляцию).

    • link — Отправляет переменных среды в обычный ярлык.

    • ldap — Отправляет переменных среды в объект Active Directory.

  • <container> — Путь к папке или guid (допускается указание пустого значения).

  • <output> — Изменяемые свойства объекта в формате key=value c подстановкой переменных %ENV%. Первое свойство считается обязательным, т.к. по его значению осуществляется поиск объектов. Для режима link обязательно наличие свойств name и targetpath, а в свойстве arguments одинарные кавычки заменяются на двойные.

  • <input> — Значения по умолчанию для переменных среды в формате key=value.

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

Предполагается использовать данный скрипт совместно с другим скриптом env, поэтому сразу в примерах будут использоваться два скрипта.

Когда компьютер в домене, то в групповых политиках при входе пользователя в компьютер, можно прописать следующий скрипт, что бы информация о компьютере и пользователе прописалась в атрибуты описания и местоположения компьютера в Active Directory в пределах Organizational Unit c guid {ABCD1234-111B-14DC-ABAC-4578F1145541}. Что бы затем быстро находить нужный компьютер пользователя или анализировать собранную информацию. Что бы узнать guid контейнера в Active Directory можно воспользоваться программой Active Directory Explorer. Так же не забудьте пользователям выдать права на изменения нужных атрибутов компьютеров в соответствующем контейнере.

wscript env.min.js wscript env.send.min.js ldap {ABCD1234-111B-14DC-ABAC-4578F1145541} cn="%NET-HOST%" description="%USR-NAME-THIRD% | %USR-NAME-FIRST% %USR-NAME-SECOND% | %DEV-NAME% | %PCB-BIOS-SERIAL% | %PCB-BIOS-RELEASE-DATE% | %NET-MAC% | %DEV-BENCHMARK% | %DEV-DESCRIPTION%" location="%USR-NAME-THIRD%" \ USR-NAME-FIRST="Terminal" USR-NAME-SECOND="login" USR-NAME-THIRD="Location" PCB-BIOS-RELEASE-DATE="XX.XX.XXXX" NET-MAC="XX:XX:XX:XX:XX:XX" 

Когда компьютер не в домене то в планировщике задач, можно прописать следующий скрипт, чтобы информация о компьютере и пользователе сохранялась в виде ярлычка в сетевой папке. И затем использовать эти ярлычки чтобы одним кликом разбудить WOL пакетом нужный компьютер и подключится к нему через Помощник для оказания технической поддержки. Для отправки WOL пакета можно использовать утилиту Wake On Lan.

wscript env.min.js wscript env.send.min.js link \serverlinks name="%NET-HOST% - %USR-NAME-FIRST% %USR-NAME-SECOND% ! %DEV-NAME% ! %PCB-BIOS-SERIAL% ! %PCB-BIOS-RELEASE-DATE% ! %DEV-BENCHMARK%" targetPath="%WINDIR%System32cmd.exe" arguments="/c wolcmd.exe %NET-MAC% 192.168.0.255 255.255.255.0 & start msra.exe /offerRA %NET-HOST%" workingDirectory="C:Scripts" windowStyle=7 iconLocation="%WINDIR%System32msra.exe,0" description="%USR-NAME-THIRD%" \ USR-NAME-FIRST="Terminal" USR-NAME-SECOND="login" PCB-BIOS-RELEASE-DATE="XX.XX.XXXX" NET-MAC="XX:XX:XX:XX:XX:XX"

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

for /f "eol=; tokens=* delims=, " %%i in (list.txt) do cscript /nologo /u env.min.js \%%i silent cscript env.send.min.js link C:Links name="%NET-HOST% - %USR-NAME-FIRST% %USR-NAME-SECOND% ! %DEV-NAME% ! %PCB-BIOS-SERIAL% ! %PCB-BIOS-RELEASE-DATE% ! %DEV-BENCHMARK%" targetPath="%WINDIR%System32cmd.exe" arguments="/c wolcmd.exe %NET-MAC% 192.168.0.255 255.255.255.0 & start msra.exe /offerRA %NET-HOST%" workingDirectory="C:Scripts" windowStyle=7 iconLocation="%WINDIR%System32msra.exe,0" description="%USR-NAME-THIRD%" \ USR-NAME-FIRST="Terminal" USR-NAME-SECOND="login" PCB-BIOS-RELEASE-DATE="XX.XX.XXXX" NET-MAC="XX:XX:XX:XX:XX:XX"

Или можно сделать то же самое, что в предыдущем примере, но разбить всё на два этапа. Сначала получить данные с компьютеров по сети через WMI и сохранить их в локальной папке. А затем на основании этих данных создать аналогичные ярлычки в другой локальной папке.

for /f "eol=; tokens=* delims=, " %%i in (list.txt) do cscript /nologo /u env.min.js \%%i > C:Inventory%%i.ini
for /f "eol=; tokens=* delims=, " %%i in (list.txt) do cscript /u env.min.js ini@auto silent \ cscript env.send.min.js link C:Links name="%NET-HOST% - %USR-NAME-FIRST% %USR-NAME-SECOND% ! %DEV-NAME% ! %PCB-BIOS-SERIAL% ! %PCB-BIOS-RELEASE-DATE% ! %DEV-BENCHMARK%" targetPath="%WINDIR%System32cmd.exe" arguments="/c wolcmd.exe %NET-MAC% 192.168.0.255 255.255.255.0 & start msra.exe /offerRA %NET-HOST%" workingDirectory="C:Scripts" windowStyle=7 iconLocation="%WINDIR%System32msra.exe,0" description="%USR-NAME-THIRD%" \ USR-NAME-FIRST="Terminal" USR-NAME-SECOND="login" PCB-BIOS-RELEASE-DATE="XX.XX.XXXX" NET-MAC="XX:XX:XX:XX:XX:XX" < C:Inventory%%i.ini

env.search

Описание

JScript для поиска данных для переменных среды в объектах Active Directory по протоколу LDAP или в папке с ini файлами. Основная задача скрипта найти, добавить в переменные среды данные по компьютеру и используя эти переменные, выполнить необходимую команду в целях системного администрирования. Данные по компьютерам можно собрать с помощью другого скрипта env и выгрузить их в ini файлы в папке или добавить в атрибуты объектов Active Directory с помощью другого скрипта env.send.

Использование

В командной строке Windows введите следующую команду. Если необходимо скрыть отображение окна консоли, то вместо cscript можно использовать wscript.

cscript env.search.min.js <mode> <container> [<option>...] [<input>...] \ [<action>...]
  • <mode> — Режим поиска данных для переменных среды.

    • folder — Получение данных из папки с ini файлами.

    • ldap — Получение данных из Active Directory.

  • <container> — Путь к папке или guid (допускается указание пустого значения).

  • <option> — Дополнительные опции (может быть несколько, порядок не важен).

    • search — Поисковой запрос (можно опустить, будет запрошен в процессе).

    • index — Номер компьютера в выборке (можно опустить, будет запрошен в процессе).

    • action — Ключ действия (можно опустить, будет запрошен в процессе).

    • item — Шаблон представления компьютеров в выборке (доступны переменные %ENV%).

    • unit — Шаблон представления других списков (доступны переменные %ENV%).

    • service — Имя службы, которую нужно запустить перед выполнением команды действия.

    • check — Флаг проверки доступности целевых компьютеров.

    • user — Флаг запроса информации по пользователю (только для режима ldap).

    • noalign — Флаг запрета выравнивания выборок и списков.

    • color — Флаг использования цветового оформления.

  • <input> — Шаблоны для получения данных из атрибутов объекта (только для режима ldap).

  • <action> — Действия в формате ключ и команда (доступны переменные %ENV%).

Поиск объектов

Если получение данных идёт в режиме folder, то поиск нужных объектов в ini файлах производится по следующим ключам: NET-MACSYS-KEYNET-HOSTDEV-NAMENET-IP-V4SYS-VERSIONUSR-ACCOUNTDEV-DESCRIPTIONPCB-BIOS-SERIALPCB-BIOS-SERIAL и USR-NAME, причём по последнему ключу поисковой запросе ещё проверяется в транслитерации.

Если получение данных идёт в режиме ldap, то поиск нужных объектов производится по следующим атрибутам: nameoperatingSystemVersion и description, причём по последнему атрибуту поисковой запросе ещё проверяется в транслитерации.

Переменные среды

Скрипт добавляет временные переменные в среду процесса. В режиме folder переменные добавляются по ключам в ini файле. В режиме ldap добавляются описанные ниже переменные. Если нет данных для формирования переменной, то переменная не создаётся. Если задана дополнительная опция user, то по ключам USR-NAME-FIRST и USR-NAME-SECOND дополнительно запрашиваются данные о пользователе. Применяя шаблоны для получения данных из атрибутов объекта, можно получить любые данные и добавить их в любые переменные. Причём данные из одного атрибута по шаблону можно разделить на несколько переменных.

Операционная система

  • SYS-NAME — Заданное производителем полное название операционной системы.

  • SYS-VERSION — Версия операционной системы.

Пользователь

  • USR-NAME — Отображаемое имя пользователя.

  • USR-ACCOUNT — Аккаунт пользователя.

  • USR-SID — Идентификатор безопасности пользователя.

  • USR-COUNTRY — Название страны пользователя.

  • USR-COUNTRY-ID — Идентификатор страны пользователя.

  • USR-CITY — Название города пользователя.

  • USR-COMPANY — Название организации пользователя.

  • USR-DEPARTMENT — Название подразделения пользователя.

  • USR-POSITION — Название должности пользователя.

  • USR-EMAIL — Адрес электронной почты пользователя.

  • USR-MOBILE — Номер мобильного телефона пользователя.

  • USR-PHONE — Номер телефона пользователя.

  • USR-HOME — Полный путь к домашнему каталогу пользователя.

  • USR-INFO — Заметка о пользователе.

Сетевой адаптер

  • NET-HOST — Зарегистрированное сетевое имя компьютера.

  • NET-HOST-DN — Значение Distinguished Name компьютера в домене.

Другие переменные

  • TMP-CHECK — Время отклика компьютера на запрос проверки доступности.

  • TMP-INDEX — Порядковый номер компьютера в выборке (или элемента в списке).

  • TMP-KEY — Ключ элемента в списке.

  • TMP-VALUE — Значение элемента в списке.

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

Вывести предложение для ввода поискового запроса, номера компьютера и выбора последующего действия. Поиск осуществлять в Active Directory в пределах Organizational Unit c guid {ABCD1234-111B-14DC-ABAC-4578F1145541}. Для отображаемой информации использовать оформление цветом, найденные компьютеры проверять на доступность и запрашивать информацию о пользователе. Что бы узнать guid контейнера в Active Directory можно воспользоваться программой Active Directory Explorer.

cscript env.search.min.js ldap {0C9E6295-C543-40D1-BD6D-3F2BDF54F7A9} color check user item=" %TMP-INDEX% | %TMP-CHECK% | %NET-HOST% | %USR-NAME% | %USR-MOBILE% | %USR-INFO% | %DEV-NAME%" unit=" %TMP-INDEX% | %TMP-KEY% | %TMP-VALUE%" description="%USR-NAME-THIRD% | %USR-NAME-FIRST% %USR-NAME-SECOND% | %DEV-NAME% | %PCB-BIOS-SERIAL% | %PCB-BIOS-RELEASE-DATE% | %NET-MAC% | %DEV-BENCHMARK% | %DEV-DESCRIPTION%" \ Помощник="msra.exe /offerRA %NET-HOST%" Подключится="mstsc.exe /v:%NET-HOST%" Доступность="ping.exe %NET-HOST%" Разбудить="wolcmd.exe %NET-MAC% 192.168.0.255 255.255.255.0" Сведения="msinfo32.exe /computer %NET-HOST%" Управление="compmgmt.msc /computer=%NET-HOST%"

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

cscript env.search.min.js folder "C:Inventory" color item=" %TMP-INDEX% | %NET-HOST% | %USR-NAME% | %DEV-DESCRIPTION%" unit=" %TMP-INDEX% | %TMP-KEY% | %TMP-VALUE%" \ Помощник="msra.exe /offerRA %NET-HOST%" Подключится="mstsc.exe /v:%NET-HOST%" Доступность="ping.exe %NET-HOST%" Разбудить="wolcmd.exe %NET-MAC% 192.168.0.255 255.255.255.0" Сведения="msinfo32.exe /computer %NET-HOST%" Управление="compmgmt.msc /computer=%NET-HOST%"

Сохранить в файл список всех компьютеров расположенных в Active Directory в пределах Organizational Unit c guid {ABCD1234-111B-14DC-ABAC-4578F1145541}.

cscript /nologo search.min.js ldap {ABCD1234-111B-14DC-ABAC-4578F1145541} search="" noalign > list.txt

Подключиться через TightVNC к первому найденному компьютеру по поисковому запросу Иванов. Поиск осуществлять в Active Directory в пределах Organizational Unit c guid {ABCD1234-111B-14DC-ABAC-4578F1145541}. Перед подключением на удалённом компьютере запустить службу с именем tvnserver, а после отключения остановить её.

wscript env.search.min.js ldap {0C9E6295-C543-40D1-BD6D-3F2BDF54F7A9} service=tvnserver search="Иванов" index=1 action=TightVNC \ TightVNC="tvnviewer.exe -host=%NET-HOST%"

Довольно часто администратору нужно быстро узнать имя пользователя, который выполнил вход на удаленном компьютере Windows. В это статье мы рассмотрим несколько утилит и PowerShell скриптов, которые помогут вам узнать имена пользователей, залогиненых на удаленных компьютерах в сети.

Содержание:

  • Утилиты PSLoggedOn и Qwinsta
  • Получаем имя пользователя на удаленном компьютере через PowerShell
  • PowerShell скрипт для проверки пользователей на удаленных компьютерах

Утилиты PSLoggedOn и Qwinsta

В комплекте утилит SysInternals PSTools от Microsoft есть консольная утилита PSLoggedOn.exe, которую можно использовать для получения имени пользователя, который вошел на удаленный компьютер, а также список подключенных к нему SMB сеансов.

Скачайте утилиту и запустите ее в формате:

psloggedon \RemoteCompName

утилита PSLoggedOn

Как вы видите, утилита вернула имя залогиненного пользователя (Users logged on locally), а также список пользователей, которые по сети используют ресурсы с этого компьютера (Users logged on via resource shares).

Если нужно получить только имя пользователя, вошедшего локально, используйте опцию –l:

Psloggedon.exe \wks215s1 –l

Утилита Psloggedon подключается к реестру и проверяет в нем имя пользователя, вошедшего локально. Для этого должна быть включена служба RemoteRegistry. Вы можете запустить ее и настроить автозапуск службы с помощью PowerShell:

Set-Service RemoteRegistry –startuptype automatic –passthru
Start-Service RemoteRegistry

Также можно получить список сессий на удаленном компьютере с помощью встроенной утилиты
qwinsta
. Эта утилита должна быть знакома любому администратору, управляющему терминальными серверами с Remote Desktop Services. Чтобы получить список сессий с удаленного компьютера, выполнит команду:

qwinsta /server:dc01

qwinsta - список сессий пользователей на компьютере

Утилита возвращает список всех сессий (активных и отключенных по таймауту) на RDS сервере или десктопной редакции Windows 10 (даже если вы разрешили к ней множественные RDP подключения).

Если при подключении к удаленному серверу через qwinsta вы получаете ошибку Error 5 Access Denied, проверьте что на удаленном компьютере разрешено удаленное управление пользователями через RPC. Включите, если нужно через реестр следующей командой или через GPO:

reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server" /v "AllowRemoteRPC" /t "REG_DWORD" /d "1" /f

Получаем имя пользователя на удаленном компьютере через PowerShell

Вы можете получить имя пользователя, который залогинен на компьютере через WMI класс Win32_ComputerSystem. Откройте консоль PowerShell и выполните команду:

Get-WmiObject -class Win32_ComputerSystem | Format-List Username

Команда вернула имя пользователя, который выполнил вход на компьютер.

Get-WmiObject -class Win32_ComputerSystem Username

У командлета Get-WmiObject есть параметр –ComputerName, который можно использовать для получения доступа к WMI объектам на удаленном компьютере. Следующая команда вернет имя пользователя с удаленного компьютера:

(Get-WmiObject -class Win32_ComputerSystem –ComputerName wks215s1).Username

Get-WmiObject ComputerName Username имя пользователя с удаленного компьютера windows

Данная команда показывает только пользователя, вошедшего на консоль (не через RDP).

Также для получения информации с удаленных компьютеров можно использовать PSRemoting с помощью командлета Invoke-Command.

Если нужно получить только имя пользователя на компьютере (без домена), воспользуетесь следующими командами:

$userinfo = Get-WmiObject -ComputerName 'wks215s1' -Class Win32_ComputerSystem
$user = $userinfo.UserName -split '\'
$user[1]

powershell скрипт вывести имя пользователя с удаленного компьютера

В современных версиях PowerShell Core (pwsh.exe) вместо Get-WmiObject нужно использовать CIM командлет Get-CimInstance:

Get-CimInstance –ComputerName wks215s1 –ClassName Win32_ComputerSystem | Select-Object UserName

Или

(Get-CimInstance -ComputerName wks215s1 -ClassName Win32_ComputerSystem).CimInstanceProperties | where{$_.Name -like "UserName"}| select value

Get-CimInstance узнать имя пользователя с удаленного компьютера

GetCiminstance использует WinRM для подключения к удаленным компьютерам, поэтому на них нужно включить и настроить WinRM через GPO или командой:

WinRM quickconfig

PowerShell скрипт для проверки пользователей на удаленных компьютерах

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

function Get-LoggedUser
{
    [CmdletBinding()]
    param
    (
        [string[]]$ComputerName 
    )
    foreach ($comp in $ComputerName)
    {
        $output = @{'Computer' = $comp }
        $output.UserName = (Get-WmiObject -Class win32_computersystem -ComputerName $comp).UserName
  [PSCustomObject]$output
    }
}

На вход функции Get-LoggedUser нужно передать имена компьютеров, на которых нужно проверить имена пользователей:

Get-LoggedUser wks215s1,wks215s2,dc01

Get-LoggedUser - powershell скрипт для получения имени залогиненых пользователей

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

Можно получить имена пользователей, которые работают на компьютерах в домене Active Directory. Для получения списка компьютеров нужно использовать командлет Get-ADComputer. В следующем примере мы получим имена пользователей, которые работают за активными компьютерами в определенном OU домена. Чтобы скрипт работал быстрее перед тем, как обратится к обратится к удаленному компьютеру, я добавил проверку его доступности по сети через ICMP пинг с помощью командлета Test-NetConnection:

function Get-LoggedUser
{
    [CmdletBinding()]
    param
    (
        [string[]]$ComputerName 
    )
    foreach ($comp in $ComputerName)
    {
        if ((Test-NetConnection $comp -WarningAction SilentlyContinue).PingSucceeded -eq $true) 
            {  
                $output = @{'Computer' = $comp }
                $output.UserName = (Get-WmiObject -Class win32_computersystem -ComputerName $comp).UserName
            }
            else
            {
                $output = @{'Computer' = $comp }
                         $output.UserName = "offline"
            }
         [PSCustomObject]$output 
    }
}
$computers = (Get-AdComputer -Filter {enabled -eq "true"} -SearchBase 'OU=Kazan,DC=winitpro,DC=loc').Name
Get-LoggedUser $computers |ft -AutoSize

powershell скрипт получить информацию по пользователей с компьютеров в домене active directory

Также обратите внимание, что вы можете хранить в свойствах компьютеров в AD имя пользователя, который выполнил вход. Для этого можно использовать логон скрипт, описанный в статье “Set-ADComputer: добавляем информацию о пользователе в свойства компьютеров AD”

После этого вам не нужно сканировать все компьютеры, чтобы найти где залогинен определенный пользователь. Можно найти компьютер пользователя простым запросом к Active Directory:

$user='dvpetrov'
$user_cn=(get-aduser $user -properties *).DistinguishedName
Get-ADComputer -Filter "ManagedBy -eq '$user_cn'" -properties *|select name,description,managedBy|ft

Как найти пользователя, который последним использовал ПК с Windows

В большой сети некоторые системы Windows могут совместно использоваться несколькими пользователями, каждый со своей учетной записью.
В некоторых случаях может быть полезно проследить имяучетная запись, которая в последний раз использовала ПК с Windows.

Чтобы найти пользователя, который последним использовал систему Windows, вам не нужны сторонние утилиты: операционная система Microsoft фактически записывает эту информацию в раздел реестра (см. Regedit и системный реестр: руководство по наиболее полезным аспектам) .

Чтобы восстановить его из локальной системы, просто введите следующее из командной строки (окно cmd) или из Windows PowerShell, открытого с правами администратора:
reg-запрос HKLMSOFTWAREMicrosoftWindowsCurrentVersionAuthenticationLogonUI /v LastLoggedOnUser
reg-запрос HKLMSOFTWAREMicrosoftWindowsCurrentVersionAuthenticationLogonUI /v LastLoggedOnDisplayName

Первая команда возвращает идентификатор учетной записи (соответствует имени папки, расположенной в C:Users), вторая — имя, связанное с самой учетной записью.

Вы также можете использовать командлет PowerShell, вставив в окно следующую команду (все в одной строке):

$regpath=»HKLM:SOFTWAREMicrosoftWindowsCurrentVersionAuthenticationLogonUI»;
$regvalue = Get-ItemProperty-Path $regpath;
$regvalue.LastLoggedOnUser;$regvalue.LastLoggedOnDisplayName

Активировав службу удаленного управления Windows (WinRM), можно также получить доступ к данным о последнем пользователе, вошедшем в удаленную систему Windows, из простого окна PowerShell.

Для этого необходимо следовать инструкциям, опубликованным в статье Управление ПК в локальной сети с помощью PowerShell: после входа в удаленную систему Windows с правильными учетными данными вы можете выполнить следующую команду для сбора информации о последнем пользователе. кто залогинился логин (вставить все в одну строку):

$computer=Read-Host ‘Компьютер’;
Invoke-Command -ComputerName $computer -ScriptBlock {$regpath=»HKLM:SOFTWAREMicrosoftWindowsCurrentVersionAuthenticationLogonUI»; $regvalue = Get-ItemProperty-Path $regpath;
$regvalue.LastLoggedOnUser; $regvalue.LastLoggedOnDisplayName}

В переписке с запросом Компьютер необходимо будет указать имя ПК, подключенного к сети, к которой вы хотите подключиться. Это имя можно прочитать из окна сети Windows или получить в отдельной системе, введя имя хоста в командной строке или в окне PowerShell, или, опять же, нажав Windows + R, а затем написав sysdm.cpl.

Как узнать кто подключался удаленно к моему компьютеру?

Существуют различные способы, позволяющие определить кто за время вашего отсутствия входил или совершил попытку входа в ваш компьютер. Это кейлоггеры и другие шпионские программы. Они позволяют получить максимум сведений о действиях «незваного гостя» на вашем ПК. Но если вам не нужны возможности клавиатурного шпиона, воспользуйтесь функционалом самой Windows.

Операционная система позволяет решить массу проблем без установки дополнительных программ и возможность узнать кто пытался проникнуть в компьютер это только одна из множества ее полезных функций. Ранее мы уже делали материал о возможности создания папок-невидимок на рабочем столе.

Как выяснить — кто входил в компьютер без вашего ведома

Содержание:

  • Отслеживание несанкционированных входов в Windows в журнале событий операционной системы
  • Получение сведений о посетителях в момент загрузки системы

Мониторинг позволяет формировать отчет обо всех удачных и провальных попытках войти в систему. В логе могут сохраняться данные за неделю или месяц. Все зависит от выставленных настроек.

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

Существует два способа для активации этой функции.

Определились со способом защиты компьютера? Тогда приступим к разбору первого способа.

Активируем журнал событий

Сохранение информации о том, кто входил в компьютер возможно только после включения этой функции. Нажимаем WIN+R для активации редактора групповой политики.

WIN+R

В открывшемся окне пишем команду gpedit.msc, кликаем ОК.

Как узнать кто подключался удаленно к моему компьютеру?

Обратите внимание. Не во всех версиях Windows имеется такой инструмент. Если редактора групповой политики в вашей операционке нет, рекомендуем обновить ее до Professional или воспользоваться вторым инструментом.

В редакторе кликаем «Политика Локальный компьютер». Далее заходим в «Конфигурация компьютера», выбираем «Конфигурация Windows». Находим кнопку «Параметры безопасности», идем в «Локальные политики», открываем «Политика аудита», выбираем пункт «Аудит входа в систему».

Как узнать кто подключался удаленно к моему компьютеру?

Переходим в «Свойства», ставим галочки напротив параметров «Успех», «Отказ».

Как узнать кто подключался удаленно к моему компьютеру?

Включение этой функции позволит Windows записывать все попытки входа с указанием времени и имени пользователя. Чтобы посмотреть отчеты в журнале нажмите «WIN+R» и введите команду «eventvwr». Кликаем «Журналы Windows», выбираем «Безопасность».

Как узнать кто подключался удаленно к моему компьютеру?

Сориентироваться в огромном списке событий поможет фильтр по действиям.

Способ узнать кто посещал компьютер при загрузке Windows

Приступаем к запуску редактора реестра. В 7 и 8 версиях Windows делаем это выбрав «Выполнить» в меню «Пуск». В появившемся окне вводим «regedit».

Как узнать кто подключался удаленно к моему компьютеру?

В 10 версии Windows можно вызвать окно аналогичным способом или через поиск.

Как узнать кто подключался удаленно к моему компьютеру?

В каталоге реестра «System» нужно создать новый параметр.

Как узнать кто подключался удаленно к моему компьютеру?

Переименовываем его в «DisplayLastLogonInfo».

Как узнать кто подключался удаленно к моему компьютеру?

В поле «Значение» ставим 1 и сохраняем изменения.

Как узнать кто подключался удаленно к моему компьютеру?

В результате откроется окно для авторизации.

Как узнать кто подключался удаленно к моему компьютеру?

После введения пароля отобразится окно с подробной информацией о дате и времени последнего успешного входа в систему и данные обо всех попытках, потерпевших неудачу. Процесс загрузки системы после прочтения информации можно активировать, нажав «ОК».

Как узнать кто подключался удаленно к моему компьютеру?

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

С помощью наших советов вы сможете правильно выставить настройки и всегда будете знать кто и когда заходил в ваш компьютер. Это очень пригодится если компьютером пользуется кто-то еще или если вы вынуждены оставлять его без присмотра.

Понравилась статья? Поделить с друзьями:
  • Как найти атомный состав элементов
  • Как найти удельную массу груза
  • Как составить жалобу на питание в детском саду
  • Как найти свой талисман на удачу
  • Как найти tfc tvc