Кто входил в систему windows

При расследовании различных инцидентов администратору необходимо получить информацию кто и когда заходил на определенный компьютер Windows. Историю входов пользователя в доменной сети можно получить из журналов контроллеров домена. Но иногда проще получить информацию непосредсвенно из логов компьютера. В этой статье мы покажем, как получить и проанализировать историю входа пользователей на компьютер/сервер Windows. Такая статистика поможет вам ответить на вопрос “Как в Windows проверить кто и когда использовал этот компьютере”.

Содержание:

  • Настройка политики аудита входа пользователей в Windows
  • Поиск событий входа пользователей в журнале событий Windows
  • Анализ событий входа пользователей в Windows с помощью PowerShell

Настройка политики аудита входа пользователей в Windows

Сначала нужно включить политик аудита входа пользователей. На отдельностоящем компьютере для настройки параметров локальной групповой политики используется оснастка gpedit.msc. Если вы хотите включить политику для компьютеров в домене Active Directorty, нужно использовать редактор доменных GPO (
gpmc.msc
).

  1. Запустите консоль GPMC, создайте новую GPO и назначьте ее на Organizational Units (OU) с компьютерами и / или серверами, для которых вы хотите включить политику аудита событий входа;
  2. Откройте объект GPO и перейдите в раздел Computer Configuration -> Policies -> Windows Settings -> Security Settings –> Advanced Audit Policy Configuration -> Audit Policies -> Logon/Logoff;
  3. Включите две политики аудита Audit Logon и Audit Logoff. Это позволит отслеживать как события входа, так и события выхода пользователей. Если вы хотите отслеживать только успешные события входа, включите в настройках политик только опцию Success;
    груповая политика - аудит событий входа на компьютеры windows

  4. Закройте редактор GPO и обновите настройки политик на клиентах.

Поиск событий входа пользователей в журнале событий Windows

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

  1. Откройте оснастку Event Viewer (
    eventvwr.msc
    );
  2. Разверните секцию Windows Logs и выберите журнал Security;
  3. Щелкните по нему правой клавишей и выберите пункт Filter Current Log;
  4. В поле укажите ID события 4624 и нажмите OK;
    фильтр событий event viewer

  5. В окне события останутся только события входа пользователей, системных служб с описанием
    An account was successfully logged on
    ;
  6. В описании события указано имя и домен пользователя, вошедшего в систему:
    New Logon:
    Security ID: WINITPRO\a.khramov
    Account Name: a.khramov
    Account Domain: WINITPRO

событие eventid 4626 - локальный вход пользователя в windows

Ниже перечислены другие полезные EventID:

Event ID Описание
4624 A successful account logon event
4625 An account failed to log on
4648 A logon was attempted using explicit credentials
4634 An account was logged off
4647 User initiated logoff

Если полистать журнал событий, можно заметить, что в нем присутствуют не только события входа пользователей на компьютер. Здесь также будут события сетевого доступа к этому компьютеру (при открытии по сети общих файлов или печати на сетевых принтерах), запуске различных служб и заданий планировщика и т.д. Т.е. очень много лишний событий, которые не относятся ко входу локального пользователя. Чтобы выбрать только события интерактивного входа пользователя на консоль компьютера, нужно дополнительно сделать выборку по значению параметра Logon Type. В таблице ниже перечислены коды Logon Type.

Код Logon Type Описание
0 System
2 Interactive
3 Network
4 Batch
5 Service
6 Proxy
7 Unlock
8 NetworkCleartext
9 NewCredentials
10 RemoteInteractive
11 CachedInteractive
12 CachedRemoteInteractive
13 CachedUnlock

При удаленном подключении к рабочему столу компьютера по RDP, в журнале событий появится записи с Logon Type 10 или 3. Подробнее об анализе RDP логов в Windows.

В соответствии с этой таблицей событие локального входа пользователя на компьютер должно содержать Logon Type: 2.

Для фильтрации события входа по содержать Logon Type лучше использовать PowerShell.

Анализ событий входа пользователей в Windows с помощью PowerShell

Допустим, наша задача получить информацию о том, какие пользователи входили на этот компьютер за последнее время. Нам интересует именно события интерактивного входа (через консоль) с
LogonType =2
. Для выбора события из журналов Event Viewer мы воспользуемся командлетом Get-WinEvent.

Следующий PowerShell скрипт выведет история входа пользователей на текущий компьютер и представит ее в виде графической таблицы Out-GridView.

$query = @'
<QueryList>
<Query Id='0' Path='Security'>
<Select Path='Security'>
*[System[EventID='4624']
and(
EventData[Data[@Name='VirtualAccount']='%%1843']
and
EventData[Data[@Name='LogonType']='2']
)
]
</Select>
</Query>
</QueryList>
'@
$properties = @(
@{n='User';e={$_.Properties[5].Value}},
@{n='Domain';e={$_.Properties[6].Value}},
@{n='TimeStamp';e={$_.TimeCreated}}
@{n='LogonType';e={$_.Properties[8].Value}}
)
Get-WinEvent -FilterXml $query | Select-Object $properties|Out-GridView

poweshell скрипт для получения списка пользователей, которые входили на этот компьтер

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

|Where-Object {$_.TimeStamp -gt '5/10/22'}

Командлет Get-WinEvent позволяет получить информацию с удаленных компьютеров. Например, чтобы получить историю входов с двух компьютеров, выполните следующий скрипт:

'msk-comp1', 'msk-comp2' |
ForEach-Object {
Get-WinEvent -ComputerName $_ -FilterXml $query | Select-Object $properties
}

Если протокол RPC закрыт между компьютерами, вы можете получить данные с удаленных компьютеров с помощью PowerShell Remoting командлета Invoke-Command:

Invoke-Command -ComputerName 'msk-comp1', 'msk-comp2' {Get-WinEvent -FilterXml $query | Select-Object $properties}

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

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

Узнаем, кто и когда включал компьютер и входил в Windows 10 с помощью редактора реестра

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

  1. Нажмите клавиши Win+R на клавиатуре (Win — это клавиша с эмблемой Windows) и введите regedit в окно «Выполнить», нажмите Enter.
  2. В редакторе реестра перейдите к разделу (папки слева) HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Policies\ System
  3. Нажмите правой кнопкой мыши в пустом месте правой части редактора реестра и выберите «Создать» — «Параметр DWORD 32 бита» (даже если у вас 64-разрядная система).
  4. Введите имя DisplayLastLogonInfo для этого параметра. 
    Создать параметр для отображения последнего входа в Windows 10

  5. Дважды кликните по вновь созданному параметру и задайте значение 1 для него. 

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

Сообщение о предыдущих входах в Windows 10

Отображение информации о предыдущем входе в систему с помощью редактора локальной групповой политики

Если у вас установлена Windows 10 Pro или Enterprise, то описанное выше вы можете сделать и с помощью редактора локальной групповой политики:

  1. Нажмите клавиши Win+R и введите gpedit.msc
  2. В открывшемся редакторе локальной групповой политики перейдите к разделу Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Параметры входа Windows
    Параметры входа в редакторе локальной групповой политики

  3. Дважды кликните по пункту «Отображать при входе пользователя сведения о предыдущих попытках входа», установите значение «Включено», нажмите Ок и закройте редактор локальной групповой политики. 
    Включение отображения информации о входах в gpedit

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

  • Home
  • News
  • How to Check Computer Login History on Windows 10/11?

By Stella | Follow |
Last Updated

You may want to know who has logged into your computer and when. But do you know how to check it? To help you do this, MiniTool Software shows you a full guide on how to check computer login history on Windows 10/11. If you are running Windows 8/8.1 or Windows 7, this guide is also available.

Tip: If you are looking for a free file recovery tool, you can try MiniTool Power Data Recovery. This software can help you recover all kinds of files from hard drives, SD cards, memory cards, SSDs, and more, as long as the files are not overwritten by new data.

MiniTool Power Data Recovery TrialClick to Download100%Clean & Safe

Sometimes you may feel that someone is logged into your computer, but you are not sure. Well then, is it possible to check if someone logged into your Windows computer? Of course, yes. Windows 10/11 has an Audit logon events policy that allows you to view login history on Windows 10/11. However, this policy is not enabled by default on your device. So, you need to manually enable it. Then you can see the Windows login log to know which has logged into your PC.

How to Check Computer Login History on Windows 10/11?

Step 1: Enable Audit Logon Events on Windows 10/11

Tip: You need to enable Audit logon events using Local Group Policy, which is available in Windows 10/11 Pro or more advanced versions. If you are running Windows 10/11 Home, the thing is different because this feature is enabled by default on your computer. So, you can just skip to the next step to view login history on Windows 10/11.

The following guide is based on Windows 11. If you are running Windows 10, the steps are the same.

  1. Click the search bar from the taskbar and search for gpedit.msc.
  2. Click the first result to open Local Group Policy Editor.
  3. Go to this path: Computer Configuration > Windows Settings > Security Settings > Local Policies > Audit Policy.
  4. Find Audit logon events from the right panel. Then, double-click it to open Properties.
  5. Check both Success and Failure under Local Security Setting.
  6. Click Apply.
  7. Click OK.

enable Audit logon events on Windows 11

After these steps, your Windows computer will begin to track the login attempts no matter it is successful or not.

Tip: If you don’t want to track the login history, you can uncheck Success and Failure in step 5.

Step 2: Find out Who Is Logged into Your Computer

You can use the Event Viewer to check who is logged into your computer and when. Here is a guide on how to find out who is logged into your computer:

  1. Right-click Start and select Event Viewer.
  2. Go to Windows Logs > Security.
  3. Find the 4624 event ID and double-click it to open it.
  4. Under the General section, check the Account Name. It is the account who have logged into your device. You can see when that account was logged in the computer under Logged.

check who is logged into your PC and when

After clicking Security, you can see that there are many logon reports. It may take some time to find your needed log. Fortunately, you can use the filter feature of Event Viewer to make the task easier.

1. Right-click Custom Views and click Create Custom View.

2. Under the Filter section, you need to:

  • Select a time range for Logged.
  • Select By log and then select Security under Windows logs for Event logs.
  • Type 4624 in the All Event IDs box.

enter filter information

3. Click OK to save the changes.

Now, you can easily find the Windows 10/11 login history.

About The Author

Position: Columnist

Stella has been working in MiniTool Software as an English Editor for more than 8 years. Her articles mainly cover the fields of data recovery including storage media data recovery, phone data recovery, and photo recovery, videos download, partition management, and video & audio format conversions.

— Ой, у меня ничего не работает, помогите!
— Не переживайте, сейчас всё исправим. Назовите имя компьютера…
(классика жанра из звонков в техподдержку)

Хорошо, если у вас есть инструмент а-ля BgInfo или ваши пользователи знают про шорткат Windows+Pause/Break и умеют его нажимать. Встречаются даже редкие экземпляры, которые успели выучить имя своей машины. Но часто у звонящего вдобавок к его основной проблеме появляется вторая: узнать имя/IP-адрес компьютера. И нередко на решение этой второй проблемы уходит куда больше времени, чем первой (а надо было всего лишь обои поменять или вернуть пропавший ярлык :).
А ведь намного приятнее услышать что-то вроде:
— Татьяна Сергеевна, не беспокойтесь, уже подключаюсь…

А надо для этого не так уж и много.

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

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

раскритиковать их в пух и прах

объяснить свой выбор.

  1. BgInfo, Desktop Info и им подобные. Если много денег, есть и платные. Суть в том, что на десктоп выводится техническая информация: имя машины, IP-адрес, логин и т.д. В Desktop Info можно даже графики производительности запилить на половину экрана.
    Не устраивает то, что для того же Bginfo, например, пользователю нужно сворачивать окна, чтобы увидеть нужные данные. Еще мы с коллегами не раз наблюдали у BgInfo характерный артефакт, когда новый текст выводится поверх старого.
    Некоторых пользователей раздражает тот факт, что админы рисуют пугающее 192.168.0.123 на мордочке растянувшегося на рабочем столе котика портят эстетику фоновой картинки, и, разумеется, это жутко демотивирует и напрочь убивает рабочий настрой.
  2. Ярлык а-ля «Кто я» (не пытайтесь добавить ему знак вопроса в конце :). Классический ярлык на рабочем столе, за которым прячется аккуратный или не очень скрипт, выводящий нужную информацию в виде диалогового окна. Иногда вместо ярлыка на рабочий стол кладут сам скрипт, что ИМХО моветон.
    Недостаток в том, что для запуска ярлыка, как и в первом случае, нужно сворачивать все открытые окна (баловней судьбы, у которых на рабочей машине открыто единственное окно с пасьянсом, в расчет не берём). Кстати, а ваши пользователи знают, куда нужно тыкнуть, чтобы свернуть все окна? Правильно, пальцем в глаз админу.

Также кэп подсказывает, что у обоих описанных выше способов основной недостаток в том, что в получении информации участвует пользователь,

который может быть подслеповат, глуп и вообще соврать.

Вариант с повышением компьютерной грамотности, когда все знают, где в Windows смотреть имя своей машины, рассматривать не буду: дело благородное, но очень трудное. А если в компании текучка кадров, то и вовсе гиблое. Что там говорить, в большинстве случаев и логин-то свой не помнят.

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

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

  1. Групповая политика, в которой прописаны логон- и логофф-скрипты для пользователей, применяется ко всему домену, поэтому скрипты будут отрабатывать на любой машине, на которую логинятся пользователи. Если у вас наряду с рабочими станциями используются терминальные решения (например, Microsoft RDS или продукты Citrix), такой подход будет неудобным.
  2. Данные заносятся в атрибут Department учетной записи пользователя, на который у рядового пользователя есть доступ только на чтение. Помимо атрибута учётной записи пользователя, скрипт также вносит изменения в атрибут Department учётной записи компьютера, который по умолчанию пользователи также менять не могут. Поэтому чтобы решение работало, автор предлагает изменить стандартые настройки безопасности для объектов AD.
  3. Формат даты зависит от настроек локализации на конечной машине, поэтому с одной машины можем получить 10 ноября 2018 14:53, а с другой 11/10/18 2:53 p.m.

Для устранения этих недостатков было сделано следующее.

  1. GPO линкуется не к домену, а к OU с машинами (я разделяю пользователей и машины по разным OU и другим советую). При этом для loopback policy processing mode выставлен режим merge.
  2. Скрипт будет заносить данные только в учетную запись пользователя в атрибут Info, который пользователь может менять самостоятельно для своей учётной записи.
  3. Изменен кусок кода, генерирующий значение атрибута

Теперь скрипты выглядят так:

SaveLogonInfoToAdUserAttrib.vbs

On Error Resume Next
Set wshShell = CreateObject("WScript.Shell")
strComputerName = wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
Set adsinfo = CreateObject("ADSystemInfo")
Set oUser = GetObject("LDAP://" & adsinfo.UserName)
strMonth = Month(Now())
If Len(strMonth) < 2 then
  strMonth = "0" & strMonth
End If
strDay = Day(Now())
If Len(strDay) < 2 then
  strDay = "0" & strDay
End If
strTime = FormatDateTime(Now(),vbLongTime)
If Len(strTime) < 8 then
  strTime = "0" & strTime
End If
strTimeStamp = Year(Now()) & "/" & strMonth & "/" & strDay & " " & strTime
oUser.put "info", strTimeStamp & " <logon>" & " @ " & strComputerName
oUser.Setinfo

SaveLogoffInfoToAdUserAttrib.vbs

On Error Resume Next
Set wshShell = CreateObject("WScript.Shell")
strComputerName = wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
Set adsinfo = CreateObject("ADSystemInfo")
Set oUser = GetObject("LDAP://" & adsinfo.UserName)
strMonth = Month(Now())
If Len(strMonth) < 2 then
  strMonth = "0" & strMonth
End If
strDay = Day(Now())
If Len(strDay) < 2 then
  strDay = "0" & strDay
End If
strTime = FormatDateTime(Now(),vbLongTime)
If Len(strTime) < 8 then
  strTime = "0" & strTime
End If
strTimeStamp = Year(Now()) & "/" & strMonth & "/" & strDay & " " & strTime
oUser.put "info", strTimeStamp & " <logoff>" & " @ " & strComputerName
oUser.Setinfo

Кто первым найдет все отличия между логон- и логофф-скриптом, тому плюс в карму. :)
Также для получения наглядной информации создан такой небольшой PS-скрипт:

Get-UsersByPCsInfo.ps1

$OU = "OU=MyUsers,DC=mydomain,DC=com"
Get-ADUser -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Информация по логонам" -Wait

Итого всё настраивается на раз-два-три:

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

  2. идем пить чай (если AD с большим количеством пользователей, то чая нужно много :)
  3. запускам PS-скрипт и получаем результат:

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

Можно красиво «упаковать» наше решение.

Для этого добавим ярлык для запуска скрипта специалистам техподдержки, у которого в поле «объект» будет что-то такое:
powershell.exe -NoLogo -ExecutionPolicy Bypass -File "\\server\share\Scripts\Get-UsersByPCsInfo.ps1"

Если сотрудников техподдержки много, то можно раздать ярлык с помощью GPP.

Несколько замечаний напоследок.

  • На машине, откуда запускается PS-скрипт, должен быть установлен модуль Active Directory для PowerShell (для этого достаточно добавить средства администрирования AD в компонентах Windows).
  • бОльшую часть атрибутов своей учётной записи пользователь по умолчанию редактировать не может. Учитывайте это, если решите использовать атрибут, отличный от Info.
  • Проинформируйте всех причастных коллег о том, какой атрибут будете использовать. Например, тот же Info используется для интерактивного добавления заметок к ящику пользователя в админке Exchange Server и кто-то легко может его затереть, либо опечалился, когда добавленную им информацию затрет ваш скрипт.
  • Если у вас несколько сайтов Active Directory, то делайте поправку на задержки репликации. Например, если вы хотите получить актуальную информацию о пользователях с AD-сайта A, а запускаете скрипт с машины из AD-сайта B, то можно сделать так:
    Get-ADUser -Server DCfromSiteA -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Информация по логонам" -Wait

    DCfromSiteA — имя контроллера домена сайта A (по умолчанию командлет Get-AdUser подключается к ближайшему контроллеру домена)

Источник картинок

Буду признателен, если вы пройдете короткий опрос ниже.

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

Чем пользуетесь?

27.22% bginfo, Desktop info etc. (бесплатное ПО)49

0.56% платные аналоги bginfo1

6.67% сделаю так, как в статье12

3.89% не актуально, т.к. использую VDI/RDS etc.7

21.11% пока не использую ничего, но задумываюсь38

28.89% мне не нужно собирать такие данные52

11.67% другое (поделитесь в комментариях)21

Проголосовали 180 пользователей. Воздержались 50 пользователей.

Sign in to your How-To Geek account

wal_top

Quick Links

Have you ever wanted to monitor who’s logging into your computer and when? On Professional editions of Windows, you can enable logon auditing to have Windows track which user accounts log in and when.

The Audit logon events setting tracks both local logins and network logins. Each logon event specifies the user account that logged on and the time the login took place. You can also see when users logged off.

Note: Logon auditing only works on the Professional edition of Windows, so you can’t use this if you have a Home edition. This should work on Windows 7, 8, and Windows 10. We’re going to cover Windows 10 in this article. The screens might look a little different in other versions, but the process is pretty much the same.

Enable Logon Auditing

To enable logon auditing, you’re going to use the Local Group Policy Editor. It’s a pretty powerful tool, so if you’ve never used it before, it’s worth taking some time to learn what it can do. Also, if you’re on a company network, do everyone a favor and check with your admin first. If your work computer is part of a domain, it’s also likely that it’s part of a domain group policy that will supersede the local group policy, anyway.

To open the Local Group Policy Editor, hit Start, type «gpedit.msc,« and then select the resulting entry.

In the Local Group Policy Editor, in the left-hand pane, drill down to Local Computer Policy > Computer Configuration > Windows Settings > Security Settings > Local Policies > Audit Policy. In the right-hand pane, double-click the «Audit logon events» setting.

wal_1

In the properties window that opens, enable the «Success» option to have Windows log successful logon attempts. Enable the «Failure» option if you also want Windows to log failed logon attempts. Click the «OK» button when you’re done.

wal_2

You can now close the Local Group Policy Editor window.

View Logon Events

After you enable logon auditing, Windows records those logon events—along with a username and timestamp—to the Security log. You can view these events using Event Viewer.

Hit Start, type «event,» and then click the «Event Viewer» result.

In the «Event Viewer» window, in the left-hand pane, navigate to the Windows Logs > Security.

In the middle pane, you’ll likely see a number of «Audit Success» events. Windows logs separate details for things like when an account someone signs on with is successfully granted its privileges. You’re looking for events with the event ID 4624—these represent successful login events. You can see details about a selected event in the bottom part of that middle-pane, but you can also double-click an event see its details in their own window.

wal_5

And if you scroll down just a bit on the details, you can see information you’re after—like the user account name.

wal_6

And because this is just another event in the Windows event log with a specific event ID, you can also use the Task Scheduler to take action when a logon occurs. You can even have Windows email you when someone logs on.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Install camera for windows 7
  • Java plugin firefox windows xp
  • Исчезли часы windows 10
  • Надо ли форматировать диск перед установкой windows 10 с флешки
  • Как удалить пользователя в windows 10 через реестр