Auslesen seit wann ein Benutzer angemeldet ist

  • Ich würde gerne herausbekommen seit wann ein Benutzer in einer Domäne angemeldet ist. Ich möchte das nur mit Autoit hinbekommen und nicht mit PsLoggedon.exe oder ähnlichen. Leider habe ich bisher keinen Lösungsansatz gefunden. Vielen Dank im Vorraus

  • Schrieb bei Anmeldung die Urzeit in einen "offenen" Regestry Zweig, die kannst Du dann immer wieder auslesen. Wenn dir das mit der Regestry nicht gefällt, schreib eine min Datei auf den Server, Rechner, Share, wie auch immer. Wenn das nicht kraut und Rüben stehen soll richte irgendwo einen Ordener ein, da werden die TXT Files reingeschrieben. Die Urzeit des erstellens = Anmeldezeit.

    Mag nicht besonders elegant sein, funktioniert aber mit einfachsten Mitteln.


    Gruß

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Vielleicht eine Hilfe...

    "net stats server" liefert dir zwar nicht die Zeit wie lange ein Benutzer angemeldet ist, aber wie lange der Rechner schon läuft.
    Die Ausgabe lässt sich in eine Textdatei umleiten und dann auslesen. Sieht dann so aus....

    RunWait(@ComSpec & " /c net stats srv >c:\temp\shutdowntime.txt","",@SW_HIDE)
    $file = FileOpen("c:\temp\shutdowntime.txt", 0)
    If $file = -1 Then Exit(1)
    $zeit = ""
    While 1
    $a = FileReadLine($file)
    If @error = -1 Then ExitLoop
    If StringLeft($a, 15) = "Statistik seit " Then $zeit = StringMid($a,16)
    WEnd
    FileClose($file)
    Sleep(500)
    FileDelete("c:\temp\shutdowntime.txt")
    Msgbox(0,"Zeit",$zeit)

  • Warum beim Login die Zeit irgend wohin schreiben?
    Windows muss doch wissen, wann man sich angemeldet hat.

    Vieleicht ist "quser" die lösung.
    Da wird die LogonTime angezeigt.

    Gruss Roger

  • Wenn schon dann schon das Orginal https://technet.microsoft.com/de-de/library/…5(v=ws.10).aspx

    Aber da braucht man eben schon wieder einen externen Aufruf.

    Gruß

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Hallo.

    Ich hab mal etwas weiter geforscht und gesehen, dass man das auch mittels WMI lösen kann.
    Hier hast du mal ein entsprechendes Script.

    Ich hoffe das hilft dir weiter.

    LG

    LG

    Philip

  • Code
    $strComputer = "."
    $userName = @USERNAME
     $objWMIService = ObjGet("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
     ;$colItems = $objWMIService.ExecQuery("Select * from Win32_NetworkLoginProfile")
     $colItems = $objWMIService.ExecQuery ("Select * from Win32_NetworkLoginProfile where caption = '" & $userName &"'")
    For $objItem in $colItems
        MsgBox (64, "Test", $objItem.LastLogon)
    Next

    Super vielen Dank für die Unterstützung. Die Zeile mit dem Starttime sieht interessant aus. Das werde ich mal bei mir einbauen. Meine zwischenzeitliche Lösung mit LastLogon brachte mit nur eine komplette falsche Ausgabe.