marcimarc85
Goto Top

Powershell - RDP Sessions vom aktuellen Tag auslesen

Hallo,

Ich habe folgendes Script gefunden, mit dem ich RDP-Logins auf einem Server ausgeben kann:

$RDPAuths = Get-WinEvent -LogName 'Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational' -FilterXPath '<QueryList><Query Id="0"><Select>*[System[EventID=1149]]</Select></Query></QueryList>'  
$timestamp = Get-Date -Format 'yyyyMMdd'  
$hostname = $env:computername

[xml[]]$xml=$RDPAuths|Foreach{$_.ToXml()}
$EventData = Foreach ($event in $xml.Event)
{ New-Object PSObject -Property @{
TimeCreated = (Get-Date ($event.System.TimeCreated.SystemTime) -Format 'dd.MM.yyy hh:mm:ss ')  
Username = $event.UserData.EventXML.Param1
Domain = $event.UserData.EventXML.Param2
Client = $event.UserData.EventXML.Param3
Server = $env:computername
}
$EventData | FT

Das Script funktioniert soweit auch zuverlässig und gibt das aus, was ich brauche. Allerdings vom gesamten Zeitraum, seitdem ich es verwende. Wie muss ich es anpassen, dass es immer nur die Logins vom aktuellen Tag ausgibt?

Grüße und Danke

Content-ID: 7286881302

Url: https://administrator.de/forum/powershell-rdp-sessions-vom-aktuellen-tag-auslesen-7286881302.html

Ausgedruckt am: 06.04.2025 um 23:04 Uhr

7010350221
Lösung 7010350221 24.05.2023 aktualisiert um 10:49:17 Uhr
Goto Top
So
Get-WinEvent -FilterHashtable @{Logname='Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational';id=1149;StartTime=(Get-date).Date;EndTime=(get-date)} | select TimeCreated,@{n='Username';e={$_.Properties[0].Value}},@{n='Domain';e={$_.Properties[1].Value}},@{n='Client';e={$_.Properties[2].Value}},@{n='Computername';e={$env:Computername}} | format-table  
-Tante Edit- Tippfehler behoben

Gruß
MarciMarc85
MarciMarc85 24.05.2023 um 13:07:02 Uhr
Goto Top
Besten Dank !
MarciMarc85
MarciMarc85 25.05.2023 um 07:45:29 Uhr
Goto Top
Zitat von @7010350221:

So
Get-WinEvent -FilterHashtable @{Logname='Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational';id=1149;StartTime=(Get-date).Date;EndTime=(get-date)} | select TimeCreated,@{n='Username';e={$_.Properties[0].Value}},@{n='Domain';e={$_.Properties[1].Value}},@{n='Client';e={$_.Properties[2].Value}},@{n='Computername';e={$env:Computername}} | format-table  
-Tante Edit- Tippfehler behoben

Gruß

Gibt es eigentlich auch die Möglichkeit das noch etwas detaillierter auszugeben? Ich lasse das Script jeden Tag laufen. Das berücksichtigt aber aktuell z.B. keine User, die sich gestern angemeldet haben und mit dieser Anmeldung heute noch aktiv arbeiten, deren Login viellecht gerade nur getrennt, aber dennoch aktiv ist.

Das wäre für eine tägliche Statistik, die ich gern hätt enatürlich noch aussagekräftiger.

Also quasi eine Liste Tabelle mit

Username
Zeit des Logins, auch wenn am Vortag oder vor mehreren Tagen)
Status (z.B. Getrennt)
... und den restlichen Werten aus der ursprünglichen Abfrage, wie Domäne etc.

Im Prinzip möchte ich das ausgegeben haben, was ich auch Im TaskManager sehe, wenn ich auf den Tab Benutzer gehe.
7010350221
7010350221 25.05.2023 um 07:50:27 Uhr
Goto Top