web-dev-qa-db-ja.com

リモートデスクトップサービスのログイン履歴

Windows Server 2008リモートデスクトップサービスサーバーへの過去のユーザーログインのレポートを生成することはできますか?

私が見つけることができる最も近いイベントビューアログは、アプリケーションとサービスログ-> Microsoft-> Windows-> TerminalServices-RemoteConnectionManagerの下にあります。これらのログは適切ですが、各ログインイベント(イベントID 1149)のユーザーアカウントを表示できません。

何かアイデアはありますか?

4
Ash

スクリプトを使用して、この情報を収集できます。理想的/単純ではありませんが、それで仕事が完了します。これは、Windows 7/Server 2008r2以降で動作するはずのPowershellスクリプトです(このコードは、新しい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'
3
Aakash Shah

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コマンドでリモートコンピューターを指定することもできます。

1
lyoung

まず、その時点でログに記録しなかった場合(またはログが上書きされてしまった場合)、運が悪かったことになります。

次に、セキュリティイベントログを調べて、イベントID 528および540を探します。ログオンタイプ10は、リモートインタラクティブログオン(RDP)を示します。

1
HopelessN00b