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-Key: 7286881302

Url: https://administrator.de/contentid/7286881302

Printed on: April 28, 2024 at 13:04 o'clock

Mitglied: 7010350221
Solution 7010350221 May 24, 2023 updated at 08:49:17 (UTC)
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ß
Member: MarciMarc85
MarciMarc85 May 24, 2023 at 11:07:02 (UTC)
Goto Top
Besten Dank !
Member: MarciMarc85
MarciMarc85 May 25, 2023 at 05:45:29 (UTC)
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.
Mitglied: 7010350221
7010350221 May 25, 2023 at 05:50:27 (UTC)
Goto Top