Ist ein user angemeldet?
Ist ein user angemeldet?
Hallo zusammen,
ich bräuchte für ein Skript die Möglichkeit um abzufragen ob jemand an dem Client angemeldet ist. Leider habe ich hier noch nichts dazu gefunden.
Beste Grüße
cdn
ich bräuchte für ein Skript die Möglichkeit um abzufragen ob jemand an dem Client angemeldet ist. Leider habe ich hier noch nichts dazu gefunden.
Beste Grüße
cdn
-
- Beiträge: 650
- Registriert: 21 Feb 2012, 12:03
- Wohnort: Mainz
Re: Ist ein user angemeldet?
Du kannst versuchen, mit Powershell und/oder wmic was zu bauen. Ist aber aufwendig und nicht immer wirklich verlässlich.
Ich würde es mit psloggedon.exe (sysinternals) probieren. In eine DOS-Sektion einbauen und den Output entsprechend parsen.
Ich würde es mit psloggedon.exe (sysinternals) probieren. In eine DOS-Sektion einbauen und den Output entsprechend parsen.
Re: Ist ein user angemeldet?
Hmm also git es keine Möglichkeit mit OPSI? Parsen und dann ins Opsiscript mit reinbringen? Gibt es dazu ein Beispiel? Habe ich wirklich gar keinen Ansatz.
- n.wenselowski
- Ex-uib-Team
- Beiträge: 3194
- Registriert: 04 Apr 2013, 12:15
Re: Ist ein user angemeldet?
Geht es um ein winst-Script?
Opsi hat die Methode hostControlSafe_getActiveSessions, aber je nachdem was mit den Infos gewollt ist, ist vllt ein anderer Weg besser.
Opsi hat die Methode hostControlSafe_getActiveSessions, aber je nachdem was mit den Infos gewollt ist, ist vllt ein anderer Weg besser.
Code: Alles auswählen
import OPSI
Re: Ist ein user angemeldet?
Es geht um ein normales OPSI skript
Mein Szenario: Wir haben mehrere Clients die via Autologin angemeldet sind. Nur manche müssen mit einem Passwort angemeldet werden.
Bei bestimmten Updates wie bspw. Windows 10 klappt das Update nur wenn ein Nutzer angemeldet ist (wisst ihr ja schon )
Leider ist die Methode mit dem Auto Admin Login nicht ganz so zuverlässig: OPSI startet einige male nicht richtig nach dem Update, sodass das Rollback ohne den AutoAdmin nicht durchgeführt wird. Ergo: Man muss an die Rechner dran und diese händisch neu starten.
Wenn ich nun weiß, dass ein Benutzer gerade eingelogt ist, dann kann ich das Skript ausführen.
Geht das mit dieser Methode? Finde dazu keine wirklichen Infos bei Euch.
Mein Szenario: Wir haben mehrere Clients die via Autologin angemeldet sind. Nur manche müssen mit einem Passwort angemeldet werden.
Bei bestimmten Updates wie bspw. Windows 10 klappt das Update nur wenn ein Nutzer angemeldet ist (wisst ihr ja schon )
Leider ist die Methode mit dem Auto Admin Login nicht ganz so zuverlässig: OPSI startet einige male nicht richtig nach dem Update, sodass das Rollback ohne den AutoAdmin nicht durchgeführt wird. Ergo: Man muss an die Rechner dran und diese händisch neu starten.
Wenn ich nun weiß, dass ein Benutzer gerade eingelogt ist, dann kann ich das Skript ausführen.
Geht das mit dieser Methode? Finde dazu keine wirklichen Infos bei Euch.
-
- Beiträge: 650
- Registriert: 21 Feb 2012, 12:03
- Wohnort: Mainz
Re: Ist ein user angemeldet?
Quick and (very) dirty mit psloggedon.exe
Code: Alles auswählen
[Actions]
DefVar $exitcode$
DosInAnIcon_psloggedon
set $exitcode$ = getLastExitcode
; if $exitcode$ = 0 do your funky stuff.
; Else fail the script and break out
[DosInAnIcon_psloggedon]
%scriptpath%\psloggedon.exe -x -l /accepteula | find /i "Users logged on locally"
exit %ERRORLEVEL%
Re: Ist ein user angemeldet?
Also ich habe mir hier aus den anderen Threads was gebastelt. Irgendwo scheint aber noch ein Syntax Fehler zu sein, kann ich aber irgendwie nicht nachvollziehen:
Jemand eine Idee?
Code: Alles auswählen
[DosInAnIcon_get_logged_in_users]
@echo off
query session
[Sub_check_logged_in_users]
Set $local_users_unfiltered$ = getOutStreamFromSection ("DosInAnIcon_get_logged_in_users")
Set $local_users_filter$ = takeFirstStringContaining ($local_users_unfiltered$,"Aktiv")
if not ($local_users_filter$ = "")
set $AutoAdmin$ = "true"
Message "Es ist kein Benutzer angemeldet, setzte ADMIN"
endif
Code: Alles auswählen
Syntax Error in Section: Sub_check_logged_in_users (Command in line 302 origin: p:\windows_10\setup.opsiscript line: 303): $local_users_unfiltered$ = getOutStreamFromSection ("DosInAnIcon_get_logged_in_users") -> getOutStreamFromSection ("DosInAnIcon_get_logged_in_users") illegal String Expressionstr
(2209) [6] [Feb 07 19:24:14:619] [windows_10]
(2210) [6] [Feb 07 19:24:14:619] [windows_10] ~~~~~~~ End Sub ~~~~~~~ Sub_check_logged_in_users
-
- Beiträge: 650
- Registriert: 21 Feb 2012, 12:03
- Wohnort: Mainz
Re: Ist ein user angemeldet?
%systemroot%\cmd64 /c query session
-
- Beiträge: 650
- Registriert: 21 Feb 2012, 12:03
- Wohnort: Mainz
Re: Ist ein user angemeldet?
Det var så lidt.