
При расследовании различных инцидентов администратору необходимо знать, кто и когда входил в систему на том или ином компьютере Windows. Историю входов пользователей в доменной сети можно получить из журналов контроллера домена. Тем не менее, иногда проще получить информацию непосредственно из журналов событий локального компьютера. В этой статье мы покажем, как получить и проанализировать события входа пользователей на компьютере/сервере под управлением Windows. Эта статистика поможет вам ответить на вопросы «Как посмотреть, кто и когда пользовался компьютером под управлением Windows?» и «Как проверить историю входа пользователей в Windows?».
Включение политики аудита входа пользователей в Windows
Прежде всего, включите политику аудита входа пользователя в систему. Чтобы настроить параметры локальной групповой политики на отдельном компьютере, используйте оснастку gpedit.msc. Если вы хотите включить политику для компьютеров в домене Active Directory, используйте редактор GPO домена (gpmc.msc
).
- Откройте консоль управления групповой политикой, создайте новый GPO и назначьте его организационным единицам (OU), содержащим компьютеры и/или серверы, для которых вы хотите включить политику аудита событий входа в систему;
- Откройте GPO и перейдите в раздел Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Advanced Audit Policy Configuration -> Audit Policies -> Logon/Logoff;
- Включите две опции политики аудита: Аудит входа в систему и Аудиторский выход. Это поможет отслеживать события как входа, так и выхода пользователей из системы. Если вы хотите отслеживать только успешные попытки входа в систему, установите флажок Успех опция в настройках политики;
В этом же разделе содержатся настройки политики для аудита событий блокировки учетных записей, изменений в группах Active Directory и т. д.
- Закройте редактор GPO и обновите параметры групповой политики на клиентах.
Как найти события входа пользователей в систему в средстве просмотра событий Windows?
После того как вы включили политики аудита входа в систему, запись о событии входа в систему будет появляться в журнале Event Viewer каждый раз, когда пользователь входит в Windows. Давайте посмотрим, как это выглядит.
- Откройте средство просмотра событий (
eventvwr.msc
); - Разверните раздел Журналы Windows и выберите Безопасность;
- Щелкните его правой кнопкой мыши и выберите Фильтр текущего журнала;
- Введите идентификатор события 4624 в поле и нажмите OK.
- Только события входа в систему пользователей и системных служб будут отображаться с описанием:
An account was successfully logged on.
- Описание события содержит имя и домен пользователя, вошедшего в систему на компьютере:
New Logon: Security ID: WOSHUB\a.muller Account Name: a.muller Account Domain: WOSHUB
Ниже приведены другие полезные идентификаторы событий:
Идентификатор события | Описание |
4624 | Событие успешного входа в учетную запись |
4625 | Учетной записи не удалось войти в систему |
4648 | Была предпринята попытка входа в систему с использованием явных учетных данных |
4634 | Учетная запись была выведена из системы |
4647 | Выход из системы по инициативе пользователя |
Отфильтрованный журнал событий будет содержать не только события входа локального пользователя. Есть также события сетевого доступа к этому компьютеру (когда вы открываете общие файлы или используете общие принтеры), события запуска различных служб и запланированных задач и т. д. Другими словами, существует множество событий, не связанных с входом локального пользователя в систему.
[Тип входа в систему Код можно использовать для фильтрации только событий интерактивных входов пользователей в консоль компьютера (локально). В таблице ниже приведены коды Logon Type.
Код типа входа | Описание |
---|---|
0 | Система |
2 | Интерактивный |
3 | Сеть |
4 | Пакет |
5 | Сервис |
6 | Прокси-сервер |
7 | Разблокировать |
8 | NetworkCleartext |
9 | NewCredentials |
10 | RemoteInteractive |
11 | CachedInteractive |
12 | CachedRemoteInteractive |
13 | CachedUnlock |
Согласно этой таблице, событие входа локального пользователя в систему должно содержать Logon Type: 2.
Для фильтрации событий входа в систему по типу входа в систему лучше использовать PowerShell.
Разбор событий входа пользователей в систему с помощью PowerShell
Предположим, ваша задача — выяснить, какие пользователи недавно входили в систему на этом компьютере. Нас интересуют только интерактивные события входа в систему (с помощью консоли компьютера) с параметром LogonType =2
. Мы будем использовать Get-WinEvent Команда для выбора событий из журналов Event Viewer.
Следующий сценарий 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
Если нужно выбрать события входа в систему за последние несколько дней, можно добавить трубу со следующим условием:
|Where-Object {$_.TimeStamp -gt '27/04/23'}
Для получения информации с удаленных компьютеров можно использовать команду Get-WinEvent. Например, чтобы получить историю входа пользователей с двух удаленных компьютеров, запустите этот сценарий:
'mun-rds1', 'mun-rds2' |
ForEach-Object {
Get-WinEvent -ComputerName $_ -FilterXml $query | Select-Object $properties
}
Invoke-Command -ComputerName 'mun-rds1', 'mun-rds2' {Get-WinEvent -FilterXml $query | Select-Object $properties}