easyeyesystem
Goto Top

Letzten Login anzeigen - Auswertung einer Logdatei

Ich habe ein Loginscript das jeden Logon speichert.

Inhalt des Loginscript:
login BenutzerName 16.10.2007 17:20:54,57
login BenutzerName 16.10.2007 17:20:51,12
login BenutzerName 16.10.2007 17:20:50,24
login BenutzerName 16.10.2007 17:20:45,45
login BenutzerName 16.10.2007 17:20:41,54


Ih würde hier gerne folgendes ausgeben

Das letzte LoginDatum und die letzte Login Uhrzeit (das komm kann bestehen bleiben.
Ausgabebeispiel:
Sie haben sich das letzte mal angemeldet am %datum-datei-letzter-login% um %uhrzeit-datei-letzter-login%.

JEdoch sollte hier wirklich nur der letzte Login angezeigt werden.

Wie kann ich das realisieren?


[Edit Biber] Titel editiert. Alt: "Letzter Logi anzeigen" [/Edit]

Content-Key: 71116

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

Printed on: April 24, 2024 at 22:04 o'clock

Member: bastla
bastla Oct 16, 2007 at 16:41:33 (UTC)
Goto Top
Hallo EasyEyeSystem!

Etwa so (für eine Datei "D:\Login.txt"):
@echo off & setlocal
for /f "tokens=3,4" %%i in ('sort D:\Login.txt') do set "Datum=%%i" & set "Zeit=%%j"  
echo Sie haben sich zuletzt angemeldet am %Datum% um %Zeit:~0,-3%

Grüße
bastla
Member: Biber
Biber Oct 16, 2007 at 17:43:15 (UTC)
Goto Top
Moin bastla,

wobei das "Sort" bei dieser Logdatei eher schaden als nützen kann:
- wenn tatsächlich verschiedene Benutzernamen darin stehen sinkt die Wahrscheinlichkeit, den eigenen letzten Login angezeigt zu bekommen relativ rasch. Für Benutzernamen wie "bastla" oder "Biber" allerdings schneller als für "Zorro" oder "Zaphod".
- dann doch lieber statt des "sort" ein Wegfiltern der anderen Benutzerzeilen mit "Find"/"Findstr".

--> .... in ('findstr /i "%angemeldeterUsername%" D:\Login.txt') do set ...
---> Wenn "angemeldeterUsername" sich nicht vom Anmeldenamen unterscheidet, dann eben %username%

Grüße
Biber
Member: bastla
bastla Oct 16, 2007 at 18:16:51 (UTC)
Goto Top
@Biber

....wobei das "Sort" bei dieser Logdatei eher schaden als nützen kann:
Für die oben dargestellte Datei funktioniert's gut ... face-wink

... aber natürlich ist es wahrscheinlicher, dass verschiedene Benutzer darin vorkommen.

Das "sort" ist nur eine Alternative zur Verwendung eines "if not defined ..." (da ja lt Beispiel die neuesten Einträge am Beginn der Datei stehen sollten), weil ich damit einfach den letzten (passenden) Eintrag verwenden kann.

Grüße
bastla
Member: EasyEyeSystem
EasyEyeSystem Oct 17, 2007 at 15:52:25 (UTC)
Goto Top
ok jedoch sollte der BEnutzername anders sein gibt es trotzdem das letzte ergebnis an.

LogDatei mit mehreren Benutzern
LogIn User 17:48 17.10.2007
LogIn Gast 17:49 17.10.2007
LogIn User 17:50 17.10.2007
LogIn User 17:52 17.10.2007
LogIn Administrator 17:54 17.10.2007

Meine Aktuelle Auslesedatei:
@echo off 
for /f "tokens=3,4" %%i in ('findstr /i "%username%" C:\ComputerLogon\LogFile-Logfile.log') do set "Datum=%%i" & set "Zeit=%%j"  
echo Letzer Login:
echo Am %Zeit:~0% 
echo Um %Datum%
Jedoch gibt es hier einen Fehler
Wenn der Letzte User Administrator gewesen ist und sich der User anmeldet wird trotzdem der Administrator ausgegeben. Diese Zeit stimmt jedoch nicht für den Benutzer
Was haber ich in meiner BAtch Falsch=

edit:
Die zwei " bei username mussten weg jetzt geht es