Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Wer war vor mir am System angemeldet? (https://www.delphipraxis.net/94925-wer-war-vor-mir-am-system-angemeldet.html)

FriFra 28. Jun 2007 05:42


Wer war vor mir am System angemeldet?
 
Gibt es einen sicheren Weg, herauszufinden, wer der letzte am System angemeldete User war?
Im konkreten Fall muss ich als eingelogter Admin genau das heraus finden, um mir das entspr. Home-Laufwerk mappen zu können.

DGL-luke 28. Jun 2007 06:14

Re: Wer war vor mir am System angemeldet?
 
Du könntest ins Eventlog schauen... :stupid:

Es gibt die Möglichkeit, im Anmeldedialog den zuletzt angemeldeten benutzer vor der Anmeldung gleich eintragen zu lassen. Vielleicht kannst du rausfnden, wo das gespeichert wird, und das auslesen.

Olli 1. Jul 2007 01:25

Re: Wer war vor mir am System angemeldet?
 
Zitat:

Zitat von DGL-luke
Es gibt die Möglichkeit, im Anmeldedialog den zuletzt angemeldeten benutzer vor der Anmeldung gleich eintragen zu lassen. Vielleicht kannst du rausfnden, wo das gespeichert wird, und das auslesen.

Unsicher!

Anmeldungen als Ereignisse loggen lassen und das Eventlog auslesen!

DGL-luke 1. Jul 2007 08:16

Re: Wer war vor mir am System angemeldet?
 
...hab ich doch gleich gesagt. :stupid:

Mackhack 1. Jul 2007 08:28

Re: Wer war vor mir am System angemeldet?
 
Hallo.

Ich habe das hier bei mir am laufen und tut gute Dienste:

Code:
Login.cmd:
SET logfile1="log-"%date:~3,2%".txt"
SET logfile2="log-"%date:~3,2%".csv"
SET logzeil1=%date% %time:~0,-3% %username%
SET logzeil2=%date%;%time:~0,-3%;%username%
echo Log On: %logzeil1% >>c:\programme\logprot\%logfile1%
echo Log On:;%logzeil2% >>c:\programme\logprot\%logfile2%

Logoff.cmd:
SET logfile1="log-"%date:~3,2%".txt"
SET logfile2="log-"%date:~3,2%".csv"
SET logzeil1=%date% %time:~0,-3% %username%
SET logzeil2=%date%;%time:~0,-3%;%username%
echo Log Off: %logzeil1% >>c:\programme\logprot\%logfile1%
echo Log Off:;%logzeil2% >>c:\programme\logprot\%logfile2%
Beide Dateien irgendwo auf der Platte in ein Verzeichnis stellen (z.B. c:\programme\logprot). Im Beispiel oben werden die Log-Dateien ebenfalls in dieses Verzeichnis geschrieben (Pfad einfach anpassen, wenn man es woanders speichern möchte).
Es werden Dateien namens "log-xx.txt" und "log-xx.csv" erzeugt, wobei xx für den Monat (also 01-12) stehen, so dass für jeden Monat zwei neue Datei erstellt wird, die eine im reinen Textformat und die andere als CSV, so dass man sie bequem mit Excel oder anderen Tabellenkalkulationen öffnen kann.

Nun startet man den Gruppenrichtlinien-Editor (gpedit.msc):

Links das "Skripts (Anmelden/Abmelden)" auswählen und dann rechts unter den Punkten die beiden Scripte eintragen.

Fertig ist die Laube!

Olli 1. Jul 2007 12:38

Re: Wer war vor mir am System angemeldet?
 
Zitat:

Zitat von Mackhack
Ich habe das hier bei mir am laufen und tut gute Dienste:

Vorsicht, Strg+C des Benutzers tut hier gute Dienste ;) ... du mußt sicher stellen, daß er das Konsolenfenster nie zu sehen bekommt.

Mackhack 1. Jul 2007 18:23

Re: Wer war vor mir am System angemeldet?
 
Zitat:

Zitat von Olli
Zitat:

Zitat von Mackhack
Ich habe das hier bei mir am laufen und tut gute Dienste:

Vorsicht, Strg+C des Benutzers tut hier gute Dienste ;) ... du mußt sicher stellen, daß er das Konsolenfenster nie zu sehen bekommt.

Hm,

das hab ich noch nie gesehen das Fenster!

Olli 1. Jul 2007 18:38

Re: Wer war vor mir am System angemeldet?
 
Zitat:

Zitat von Mackhack
das hab ich noch nie gesehen das Fenster!

Kann ich mir vorstellen. Es gab verschiedene Wege das zu machen. Der ursprüngliche Weg (deiner ist dann vermutlich der neuere?!) zeigte ein Konsolenfenster an.

Das wäre auch die einzige Warnung. Ansonsten würde ich es vermutlich auch mit solchen Skripten machen, weil man die üblicherweise ohnehin schon benutzt.

Mackhack 1. Jul 2007 18:45

Re: Wer war vor mir am System angemeldet?
 
Genau!

Wie gesagt kein Fenster popped auf, und alles ist wunderbar mit Excel zu sichten.

Hier noch schnell ein Beispielcode wie man auch einen Logfile Betrachter in Delphi dafuer realisieren kann:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Stream: TextFile;
  X, Y: Integer;
  TextZeile: String;
  Zeile: TStringList;
Begin
  If OpenDialog1.Execute And FileExists(OpenDialog1.FileName) Then
  Begin
    AssignFile(Stream, OpenDialog1.FileName);
    Reset(Stream);
    Try
      {Stringgrid löschen}
      StringGrid1.RowCount := 1;
      StringGrid1.ColCount := 1;
      StringGrid1.Cells[0,0] := '';

      Zeile := TStringList.Create;
      Try
        Zeile.Delimiter := ';';
        Y := 0;
        While (Not EOF(Stream)) Do
        Begin
          Readln(Stream, TextZeile);
          Zeile.DelimitedText := TextZeile;

          StringGrid1.RowCount := Y + 1;
          If StringGrid1.ColCount < Zeile.Count Then
            StringGrid1.ColCount := Zeile.Count;

          For X := 0 To Zeile.Count - 1 Do
          Begin
            StringGrid1.Cells[X, Y] := Zeile[X];
          End;
          Inc(Y);
        End;
      Finally
        Zeile.Free;
      End;
    Finally
      CloseFile(Stream);
    End;
  End;
End;


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz