Seite 1 von 1

loginblocker ende

Verfasst: 17 Nov 2014, 11:58
von torstenv
Hi!

Ich muss per Windows CMD Script den Zeitpunkt herausfinden, ab wann ein User in der Lage gewesen wäre, sich am Rechner anzumelden, weil opsis Loginblocker fertig geworden ist.

Ich habe folgende Ansätze versucht, indem ich ein grep auf diese Dateien aus \\machine\c$\tmp\ gemacht habe:
opsi_loginblocker.txt, aber die Zeile "[Datum] [Uhrzeit] [5] Not blocking!" wird nicht in jedem Falle geschrieben

instlog.err aus c:\tmp, aber die Zeile "opsi-winst Version 4.11.3.11 WIN32 is regularly exiting. Time [Datum]" wird nicht in jedem Falle geschrieben

instlog.txt aus c:\tmp, aber die Zeile "opsi-winst Version 4.11.3.11 WIN32 is regularly exiting. Time [Datum]" wird nicht in jedem Falle geschrieben


Hat jemand eine Idee, wie ich von einem anderen Rechner aus über ein Batch Script herausfinden kann, ob der Loginblocker fertig ist und der User sich anmelden könnte? Es Lösungsansatz wäre ja vielleicht, den opsi-loginblocker dazu zu kriegen, dass er immer seine Statusmeldung "not blocking" in opsi_loginblocker.txt schreibt, sobald er fertig ist.

[Edit 201411171440]:
Dirty Hack:
pslist -e action_processor_starter \\machine

pslist ist aus den PSTools von Russinovich (technet.microsoft.com/en-us/sysinternals/bb896682)

Gruß,
T.

Re: loginblocker ende

Verfasst: 17 Nov 2014, 16:56
von m.michaelis
Hallo,

ein grep auf die Loginblocker Logdatei wäre auch ein ziemlicher dirty hack
;)
Da ändert sich mit opsi 4.0.5 einiges, u.a. wird die Logdatei ab opsi 4.0.5 im Verzeichnis "opsi.org\log" erzeugt und enthält nur die letzte Aktion, d.h. wenn der Benutzer sich mit Ctrl-Alt-Del anmeldet, sieht man nur noch diese Aktion im Logfile. Was an einem Bug im Logfile-Ageing liegt, den man (ab 4.0.5) mit diesem Workaround umschiffen kann: die Logdatei löschen, dann werden alle Logs in der Datei gesammelt bis zum nächsten Monatswechsel. Dann muss man wieder einmal die neue Datei löschen.
Dafür wird es wohl bald nochmal ein Update geben, dann könnte es mit einem Grep klappen, falls der Loglevel entsprechend hoch ist (z.B. Loglevel >= 5).

Viel sauberer wäre natürlich eine Anfrage an den opsiclientd über die offizielle Schnittstelle, z.B.:

https://<pcname-FQDN>:4441/interface?{ "id": 1, "method": "getBlockLogin", "params": []}

Das gibt eine JSON Antwort zurück:

{"id": 1,
"result": false,
"error": null
}

mit
result: false = es wird nicht geblockt
result: true = es wird noch geblockt

Viel Erfolg
Miriam