Quickly1971 0 Geschrieben 29. Juli 2018 Melden Teilen Geschrieben 29. Juli 2018 Hallo. Ich suche nun schon seit Stunden im Netz und Manuals. Und komme nicht weiter. Habe diverse Windows OS und möchte die Remote-Benutzer per CMD abmelden (nicht Powershell). Soweit habe ich auch was sehr gutes gefunden. Jedoch: Der Admin* oder auch der Administrator, oder auch eine Blacklist.txt sollen "nicht" abgemeldet werden. Hmpf... Ich finde es nicht. Das hier habe ich gefunden und funktioniert wunderbar. Lasse ich als Task (System) ausführen. Möchte keinen Benutzer/PW hinterlegen. Nur es wird halt der Administrator auch mit abgemeldet. @echo off query session >session.txt for /f "eol=> skip=2 tokens=1,2,3," %%i in (session.txt) DO ( if "%%k" == "Getr." ( REM Getrennte Verbindungen killen echo %%i %%j logoff %%j ) else ( REM Aktive Verbindungen killen echo %%j %%k logoff %%k ) ) del session.txt REM pause :end Hier die Ausgabe von: query session >session.txt SITZUNGSNAME BENUTZERNAME ID STATUS TYP GERŽT services 0 Getr. >console Administrator 10 Aktiv rdp-tcp#6 Mustermann 15 Aktiv rdp-tcp 65536 Abh”r. Wärend ich das hier gerade schreibe... ist mein Gedankenansatz evtl. total falsch oder zu kompliziert?!?! Ich sehe jetzt gerade im Script den Wert skip=2. Könnte es sein, dass hier schon die Lösung liegt und dieser Wert definiert, dass die ersten 2 Zeilen ignoriert werden? Das wäre dann ein Ansatz wenn man sagen könnte: Ignoriere auch die Zeile mit dem Inhalt Admin*. Nur wie kann ich das dann umsetzen. Bin gerade ein wenig verzeifelt. Vielleicht kann mir jemand helfen. Das wäre nett. VG, Lars Zitieren Link zu diesem Kommentar
Esta 114 Geschrieben 30. Juli 2018 Melden Teilen Geschrieben 30. Juli 2018 Hallo Lars, vor 18 Stunden schrieb Quickly1971: Ich sehe jetzt gerade im Script den Wert skip=2 das bedeutet meines Wissens, dass die ersten beiden Zeilen, also die Überschrift und "Services" übersprungen werden. vor 18 Stunden schrieb Quickly1971: Ignoriere auch die Zeile mit dem Inhalt Admin*. Hier würde ich die If-Anweisung verschachteln und nach dem Benutzer "Admin*" fragen, bzw. das er es nicht ist. Bsp. so (ungeprüft): ... if NOT %%benutzer == "Admin*" ( if "%%k" == "Getr." ( REM Getrennte Verbindungen killen echo %%i %%j logoff %%j ) else ( REM Aktive Verbindungen killen echo %%j %%k logoff %%k ) ) ... Wenn du noch andere Benutzer ausschließen willst, nimmt die CASE-Anweisung. Zitieren Link zu diesem Kommentar
germanpowerSHELL 1 Geschrieben 23. August 2018 Melden Teilen Geschrieben 23. August 2018 Hallo Lars Schön, dass du die Uralttechnik noch bevorzugst. Du könntest einen solchen Logoff auch über die Gruppenrichtlinien (GPO) erzwingen, falls du bereits Active Directory am Start hast. Gruss Tom Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.