![73329](/images/members/profile_male_64x64.png)
73329
04.09.2009, aktualisiert um 15:07:29 Uhr
Force User logout bei Konto deaktivierung
Wenn ein AD-Benutzerkonto deaktiviert wird und der User noch angemeldet ist, kann er uneingeschränkt weiter arbeiten was nun zu verhindern ist.
Gibt es eine möglichkeit einen Check abzusetzen der z.B. alle 10min prüft, ob der Account deaktiviert ist und sobald dies zutrifft dem User die Session killt (vorzugsweise via GP)?
Bin um jeden Input froh...
Umgebung:
- W2k3 DC R2 SP2
- User melden sich über einen TerminalServer an!
Gibt es eine möglichkeit einen Check abzusetzen der z.B. alle 10min prüft, ob der Account deaktiviert ist und sobald dies zutrifft dem User die Session killt (vorzugsweise via GP)?
Bin um jeden Input froh...
Umgebung:
- W2k3 DC R2 SP2
- User melden sich über einen TerminalServer an!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 124220
Url: https://administrator.de/forum/force-user-logout-bei-konto-deaktivierung-124220.html
Ausgedruckt am: 17.02.2025 um 01:02 Uhr
20 Kommentare
Neuester Kommentar
Hi,
also soweit ich weiss kann der Nutzer nicht uneingeschränkt weiterarbeiten.
Sobald ein Zugriff erfolgt werden die Rechte gegen geprüft, und wenn das Konto gesperrt ist, gibt es keinen Zugriff.
Das gilt z.B. für Outlook, das Speichern und Öffnen einer Datei oder das Entsperren des Bildschirmschoners mit Kennwort.
Via GPO die Session killen, geht meiner Meinung nach nicht.
Ich könnte das nur über lokale Skripte und geplante Tasks verwirklichen.
Gruss,
Destry
also soweit ich weiss kann der Nutzer nicht uneingeschränkt weiterarbeiten.
Sobald ein Zugriff erfolgt werden die Rechte gegen geprüft, und wenn das Konto gesperrt ist, gibt es keinen Zugriff.
Das gilt z.B. für Outlook, das Speichern und Öffnen einer Datei oder das Entsperren des Bildschirmschoners mit Kennwort.
Via GPO die Session killen, geht meiner Meinung nach nicht.
Ich könnte das nur über lokale Skripte und geplante Tasks verwirklichen.
Gruss,
Destry
Moin.
@Destry
@ccube
Diese Batch ließe sich wohl erstellen. Sie müsste ein Logoff absetzen, am besten über psshutdown -o
Zum Test, ob das Konto deaktiviert ist, würde ich das Kommando
net user DeaktivierterUser /domain
nehmen und dann im Output nach dem String
Konto aktiv Nein
suchen lassen.
Wie aber willst Du vorgehen, vollautomatisiert oder halb? voll wird schwer, woher soll das Kommando den Nutzernamen nehmen? Es ginge natürlich mit %username% auf jedem einzelnen PC im Rahmen eines geplanten tasks, aber den musst Du folglich auch im Nutzerkontext laufen lassen - dazu brauchst Du die Nutzerkennwörter...
@Destry
soweit ich weiss kann der Nutzer nicht uneingeschränkt weiterarbeiten.
Leider nein. Hab ich auch gerade nochmal getestet.@ccube
Diese Batch ließe sich wohl erstellen. Sie müsste ein Logoff absetzen, am besten über psshutdown -o
Zum Test, ob das Konto deaktiviert ist, würde ich das Kommando
net user DeaktivierterUser /domain
nehmen und dann im Output nach dem String
Konto aktiv Nein
suchen lassen.
Wie aber willst Du vorgehen, vollautomatisiert oder halb? voll wird schwer, woher soll das Kommando den Nutzernamen nehmen? Es ginge natürlich mit %username% auf jedem einzelnen PC im Rahmen eines geplanten tasks, aber den musst Du folglich auch im Nutzerkontext laufen lassen - dazu brauchst Du die Nutzerkennwörter...
@dww
warum auf jeden Rechner? Eigentlich sollte es reichen, wenn das Script auf dem TS unter "System" läuft. Denn die User arbeiten wohl alle auf dem Server.
Ich würde die Batchdatei so aufbauen:
Was eben noch ein Problem darstellt, ist 1). Ich weiß im Moment keinen Befehl dafür.
Grüße,
Dani
warum auf jeden Rechner? Eigentlich sollte es reichen, wenn das Script auf dem TS unter "System" läuft. Denn die User arbeiten wohl alle auf dem Server.
Ich würde die Batchdatei so aufbauen:
- Alle angemeldeten TS-User auslesen
- Danach die Einzelheiten wie DWW schon anmerkte mit "net user %user% /domain" ausgeben lassen und gleich auswerten
- If-Abfrage wo den speziellen Parameter "Konto aktiv" überprüft und ggf. ein Logoff absetzt.
- Nächster TS-User einlesen
Was eben noch ein Problem darstellt, ist 1). Ich weiß im Moment keinen Befehl dafür.
Grüße,
Dani
![81825](/images/members/profile_male_48x48.png)
Hi,
Nur aus Interesse: Worauf beziehen sich dein "Leider" und dein "nein"? Darauf. dass er nicht uneingeschränkt weiterarbeiten kann, oder dass er leider doch weiterarbeiten kann?
Ist nicht ganz eindeutig zu interpretieren, jedenfalls nicht für mich, da ich keinen Domänenzugang zum Ausprobieren habe.
Zitat von @DerWoWusste:
@Destry
> soweit ich weiss kann der Nutzer nicht uneingeschränkt
weiterarbeiten.
Leider nein. Hab ich auch gerade nochmal getestet.
@Destry
> soweit ich weiss kann der Nutzer nicht uneingeschränkt
weiterarbeiten.
Leider nein. Hab ich auch gerade nochmal getestet.
Nur aus Interesse: Worauf beziehen sich dein "Leider" und dein "nein"? Darauf. dass er nicht uneingeschränkt weiterarbeiten kann, oder dass er leider doch weiterarbeiten kann?
Ist nicht ganz eindeutig zu interpretieren, jedenfalls nicht für mich, da ich keinen Domänenzugang zum Ausprobieren habe.
Hi,
ok...ich versuch es mal.
Hier die Version 0.1:
Ich konnte es leider nur teilweiße testen...da ich hier grad kein Terminalserver stehen habe. Ich habe jetzt mal den internen "shutdown" Befehl genommen. Sollte auch gehen...
Erklärung zu den einzelnen Zeilen:
3: Mit dem Tool "psloggedon.exe" (Danke an DWW) werden alle aktiven Benutzer der Domäne ausgegeben. Durch die Kombination mit "findstr" wird eine Art Filter gesetzt. Somit werden die Systemaccounts nicht mehr aufgelistet und erzeugen keine Fehler.
4: Einfache Debugausgabe
5: Der Username wird automatisch in den nächsten Befehl eingesetzt. Auch hier wird über den Befehl "findstr" die gewünschten Angaben u filtern. Denn normalweiße werden 30-40 Optionen aufgelistet. Das brauchen wir ja eigentlich alles nicht.
6: Falls der Wert von "Konto aktiv" Nein ist, wird der entsprechende Benutzer ausgeloggt.
Was mir gerade zu Zeile 6 einfällt: Wie können wir den entsprechenden User ausloggen?! Denn mit shutdown.exe wird der aktuelle Benutzer unter dem das Skript läuft, abgemeldet. Gibts dafür vllt. auch ein Tool bei psTools?
Grüße,
Dani
ok...ich versuch es mal.
@echo off
for /f "skip=1 delims=\ tokens=2" %%i in ('psloggedon.exe -x -l ^| findstr "NETBIOSNAME DER DOMÄNE"') do (
echo Username: %%i
for /f "tokens=3 delims= " %%w in ('net user %%i /domain ^| findstr /i /b "Konto aktiv"') do (
if /i "%%w" == "Nein" echo shutdown /a /f /t 30
)
echo Naechster Benutzer
)
Erklärung zu den einzelnen Zeilen:
3: Mit dem Tool "psloggedon.exe" (Danke an DWW) werden alle aktiven Benutzer der Domäne ausgegeben. Durch die Kombination mit "findstr" wird eine Art Filter gesetzt. Somit werden die Systemaccounts nicht mehr aufgelistet und erzeugen keine Fehler.
4: Einfache Debugausgabe
5: Der Username wird automatisch in den nächsten Befehl eingesetzt. Auch hier wird über den Befehl "findstr" die gewünschten Angaben u filtern. Denn normalweiße werden 30-40 Optionen aufgelistet. Das brauchen wir ja eigentlich alles nicht.
6: Falls der Wert von "Konto aktiv" Nein ist, wird der entsprechende Benutzer ausgeloggt.
Was mir gerade zu Zeile 6 einfällt: Wie können wir den entsprechenden User ausloggen?! Denn mit shutdown.exe wird der aktuelle Benutzer unter dem das Skript läuft, abgemeldet. Gibts dafür vllt. auch ein Tool bei psTools?
Grüße,
Dani
Hi,
wir haben Nutzer die das Ändern ihres Kennwortes bis auf den letzten Tag schieben. Sie denken dann sie hätten noch den ganzen Tag Zeit. Tatsächlich aber läuft das Kennwort im Laufe des Tages zu einer bestimmten Uhrzeit ab.
Nach dem Ablauf bekommen wir dann den Anruf das der Nutzer z.B. seine Mails nicht mehr lesen oder Dateien abspeichern kann, was eindeutig damit zu tun hat. Das ist keine Vermutung.
Gibt es hier einen Unterschied zwischen abgelaufenem Kennwort und deaktiviertem Konto? Weiss jemand warum?
Gruss,
Destry
![81825](/images/members/profile_male_48x48.png)
Moin,
es wird vielleicht mehr, wenn du skip rausnimmst:
An Stelle von "Meine Domäne" würde ich es mal mit "VPN" versuchen, im Batch die %-Zeichen verdoppeln.
es wird vielleicht mehr, wenn du skip rausnimmst:
for /F "delims=\ tokens=2" %i in ('psloggedon.exe -x -l ^| findstr "Meine Domäne"') do (echo Username: %i)
An Stelle von "Meine Domäne" würde ich es mal mit "VPN" versuchen, im Batch die %-Zeichen verdoppeln.
![81825](/images/members/profile_male_48x48.png)
Hehe, das war mir schon klar, dass "Meine Domäne" ein Alias sein sollte. Da oben stand aber vorher (bevor du es geändert hast, VPN\....., nur deshalb der Hinweis.