0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WindowsServer RDGWの接続ログ出力

Last updated at Posted at 2024-04-24

前提

オンプレミスWindowsServerでRemoteDesktopGatewayServer(RDGW)を運用しています。
RDGWはインターネット側環境から専用LANを通った先の閉域網環境のDMZに配置されています。ユーザはインターネット側環境からWindows標準のリモートデスクトップ接続クライアントを使い、このRDGWで認証を行い、閉域網上の個人のマシンにRemoteDesktop接続を行います。

運用管理者としてはこのRDGWに接続してきたユーザのログの一覧というのが欲しくなると思います。しかし、WindowsServerのRDマネージャやイベントログビューアで閲覧していてはとても内容解析や統計処理ができません。またイマドキ個々のイベントのxmlを集めて、さらにそこからそれをどうこうするというのもちょっとやる気が起きず…

今回の内容:RD接続ログのCSV出力

そこで、RD接続してきて認証を試行したユーザのID、接続元のIP、接続日時といった情報をPowerShellでCSV出力するスクリプトを作成しました。以下のスクリプトを任意の場所で実行すればその場所にログCSVが出力されます。

connected_ip.ps1
$hostname = hostname
$timestamp = Get-Date -Format "yyyyMMdd"
$filename = $hostname + "_" + $timestamp +".csv"
Get-WinEvent -LogName "Microsoft-Windows-TerminalServices-Gateway/Operational" | Where-Object{ $_.Id -eq 302 } | ForEach-Object{
    $ipAddress = $_.Properties[1].Value
    $date = $_.TimeCreated
    $user = $_.Properties[0].Value
    [PSCustomObject]@{
        date = $date
        ip = $ipAddress
        user = $user
    }
} | Export-Csv -Path .\$filename -NoTypeInformation -Encoding UTF8

目的に応じてイベントログ名、フィルタするイベントIDやCSVに出力する情報は修正してください。

イベントIDは300は認証され接続が許可されたことを示し、302は単に接続が試行されたことを示すらしいです。また、303は切断時のログです。ただし、イベントIDによってプロパティの構造は異なるかもしれません(未確認)。

【実行結果例:WindowsServer2016で実行】

rdgw_20240420.csv
"date","ip","user"
"2024/04/20 12:34:56","192.168.10.199","domain\tanaka"
"2024/04/20 12:46:57","192.168.10.234","domain\sato"
"2024/04/20 12:47:57","192.168.10.123","domain\yamada"
...
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?