Можно ли создать отчет о прошлых входах пользователей на сервер служб удаленных рабочих столов Windows Server 2008?
Ближайшие журналы средства просмотра событий, которые я могу найти, находятся в разделе Журналы приложений и служб -> Microsoft -> Windows -> TerminalServices-RemoteConnectionManager. Эти журналы хороши, однако вы не можете отображать учетную запись пользователя для каждого события входа в систему (идентификатор события 1149).
Есть идеи?
Вы можете использовать сценарий для сбора этой информации. Не такой идеальный / простой, но он выполнит свою работу. Вот сценарий Powershell, который должен работать в Windows 7 / Server 2008r2 или выше (этот код можно дополнительно очистить в новых версиях Powershell, но я оставил его как есть для обратной совместимости):
$LogName = 'Microsoft-Windows-TerminalServices-LocalSessionManager/Operational'
$Results = @()
$Events = Get-WinEvent -LogName $LogName
foreach ($Event in $Events) {
$EventXml = [xml]$Event.ToXML()
$ResultHash = @{
Time = $Event.TimeCreated.ToString()
'Event ID' = $Event.Id
'Desc' = ($Event.Message -split "`n")[0]
Username = $EventXml.Event.UserData.EventXML.User
'Source IP' = $EventXml.Event.UserData.EventXML.Address
'Details' = $Event.Message
}
$Results += (New-Object PSObject -Property $ResultHash)
}
$Results | Export-Csv 'Remote Desktop Users.csv'
На основе https://gallery.technet.microsoft.com/Log-Parser-to-Identify-8aac36bd
Get-Eventlog -LogName Security | where {$_.EventId -eq "4624"} | select-object @{Name="User"
;Expression={$_.ReplacementStrings[5]}} | sort-object User -unique
Вы можете получить другую информацию из ReplacementStrings. Вы также можете указать удаленный компьютер в команде Get-Eventlog.
Во-первых, если вы не зарегистрировали его в то время (или журнал был с тех пор перезаписан), вам не повезло.
Во-вторых, вы хотите просмотреть журнал событий безопасности и найти события с кодами 528 и 540. Тип входа 10 указывает на удаленный интерактивный вход в систему (RDP).