Um nicht verbundene Benutzer abzumelden, während der aktuelle Benutzer verbunden bleibt, kopieren Sie den folgenden Skriptcode in eine .cmd-Datei wie "LogOffUsers.cmd" und führen Sie ihn um Mitternacht als Dienst aus:
@echo off for /f "tokens=1-7 delims=,: " %%a in ('query user ^| find /i "disc"') do logoff %%b
Das Skript funktioniert, indem der Abfragebefehl verwendet wird, um Benutzer zu suchen, die getrennt wurden, indem der Ausdruck "disc" durchsucht und anschließend abgemeldet wird.
Wenn Sie möchten, dass das Skript stattdessen kontinuierlich als Dienst ausgeführt wird, und Benutzer abmelden, wenn sie für einen bestimmten Zeitraum getrennt oder inaktiv waren, verwenden Sie stattdessen Folgendes:
@echo off :Top for /f "tokens=1-7 delims=,: " %%a in ('query user ^| find /i "disc"') do if %%d GTR 32 (logoff %%b) else %%e GTR 32 (logoff %%b) choice /T 120 /C 1 /D 1 /N goto top
Dieses Skript verwendet den gleichen Abfragebefehl, überprüft jedoch zusätzlich den Teil "IDLE TIME" der Ergebnisse und protokolliert den Benutzer, wenn die Leerlaufzeit größer als 32 ist ("GTR 32"). Diese Phrase kommt zweimal vor, da das Token "IDLE TIME" an zwei leicht unterschiedlichen Positionen vorkommen kann. Dann wartet die Zeile, die mit "choice" beginnt, 2 Minuten, bevor sie die Operation erneut ausführt, indem sie an den Anfang geht. Sie können den Wert "32" je nach Bedarf erhöhen oder verringern.
Gefunden hier .