Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Force User logout bei Konto deaktivierung

Frage Microsoft Windows Server

Mitglied: 73329

73329 (Level 1)

04.09.2009, aktualisiert 15:07 Uhr, 4699 Aufrufe, 20 Kommentare

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!
Mitglied: Destry
04.09.2009 um 16:06 Uhr
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
Bitte warten ..
Mitglied: DerWoWusste
06.09.2009 um 14:45 Uhr
Moin.
@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...
Bitte warten ..
Mitglied: Dani
06.09.2009 um 15:08 Uhr
@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:
  1. Alle angemeldeten TS-User auslesen
  2. Danach die Einzelheiten wie DWW schon anmerkte mit "net user %user% /domain" ausgeben lassen und gleich auswerten
  3. If-Abfrage wo den speziellen Parameter "Konto aktiv" überprüft und ggf. ein Logoff absetzt.
  4. Nächster TS-User einlesen

Was eben noch ein Problem darstellt, ist 1). Ich weiß im Moment keinen Befehl dafür.


Grüße,
Dani
Bitte warten ..
Mitglied: 81825
06.09.2009 um 15:14 Uhr
Hi,

Zitat von DerWoWusste:
@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.
Bitte warten ..
Mitglied: DerWoWusste
06.09.2009 um 15:16 Uhr
Ah ja, ein TS steht ja auch oben - hab ich vergessen.
zu 1) psloggedon kann das.
Bitte warten ..
Mitglied: DerWoWusste
06.09.2009 um 15:17 Uhr
Hast recht, Deutlichkeit ist nötig. Destry hat Unrecht mit seiner Vermutung.
Bitte warten ..
Mitglied: Dani
06.09.2009 um 15:59 Uhr
Hi,
ok...ich versuch es mal. Hier die Version 0.1:
01.
@echo off 
02.
 
03.
for /f "skip=1 delims=\ tokens=2" %%i in ('psloggedon.exe -x -l ^| findstr "NETBIOSNAME DER DOMÄNE"') do ( 
04.
	echo Username: %%i 
05.
	for /f "tokens=3 delims= " %%w in ('net user %%i /domain ^| findstr /i /b "Konto aktiv"') do ( 
06.
		if /i "%%w" == "Nein" echo shutdown /a /f /t 30 
07.
08.
	echo Naechster Benutzer 
09.
)
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
Bitte warten ..
Mitglied: 73329
07.09.2009 um 07:56 Uhr
Vielen Dank für euren Input und den eleganten Lösungsansatz.
Werde das Skript gleich mal ausprobieren.
Bitte warten ..
Mitglied: 73329
07.09.2009 um 09:48 Uhr
Hmmm...

Wenn ich das Skript laufen lasse sehe ich folgendes:

01.
C:\>for /F "skip=1 delims=\ tokens=2" %i in ('psloggedon.exe -x -l | findstr "Meine Domäne"') do ( 
02.
echo Username: %i 
03.
 for /F "tokens=3 delims= " %w in ('net user %i /domain | findstr /i /b "Konto aktiv"') do (if /I "% 
04.
w" == "Nein" echo shutdown /a /f /t 30  ) 
05.
06.
 
07.
loggedon v1.33 - See who's logged on 
08.
Copyright ® 2000-2006 Mark Russinovich 
09.
Sysinternals - www.sysinternals.com 
10.
 
11.
 
12.
C:\>( 
13.
echo Username: administrator 
14.
 for /F "tokens=3 delims= " %w in ('net user administrator /domain | findstr /i /b "Konto aktiv"') do (if 
15.
 /I "%w" == "Nein" echo shutdown /a /f /t 30  ) 
16.
17.
Username: administrator 
18.
 
19.
C:\>(if /I "Ja" == "Nein" echo shutdown /a /f /t 30  ) 
20.
 
21.
C:\>(if /I "Nie" == "Nein" echo shutdown /a /f /t 30  ) 
22.
 
23.
C:\>
Obwohl noch weitere User angemeldet sind, wird nur der eine Account geprüft. Wenn ich aber den Befehl "psloggedon.exe -x -l" auf dem TS ausführe, zeigt er mir auch die anderen angemeldeten User an.

Für den Logoff denke ich mal ist der Befehl "logoff" am einfachsten...
Bitte warten ..
Mitglied: Dani
07.09.2009 um 11:39 Uhr
Moin,
wie sieht denn die Ausgabe von deinem "psloggedon.exe -x -l" aus? Ich habe es eben mit einer Domäne versucht.


Grüße,
Dani
Bitte warten ..
Mitglied: 73329
07.09.2009 um 11:55 Uhr
01.
C:\>psloggedon.exe -x -l 
02.
 
03.
loggedon v1.33 - See who's logged on 
04.
Copyright ® 2000-2006 Mark Russinovich 
05.
Sysinternals - www.sysinternals.com 
06.
 
07.
Users logged on locally: 
08.
     NT-AUTORIT─T\LOKALER DIENST 
09.
     NT-AUTORIT─T\NETZWERKDIENST 
10.
     Meine Domäne\TStestUser 
11.
     Meine Domäne\administrator 
12.
     NT-AUTORIT─T\SYSTEM
Bitte warten ..
Mitglied: Destry
07.09.2009 um 14:53 Uhr
Zitat von DerWoWusste:
Hast recht, Deutlichkeit ist nötig. Destry hat Unrecht mit seiner
Vermutung.

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
Bitte warten ..
Mitglied: Dani
07.09.2009 um 22:55 Uhr
Moin,
seltsam...macht eigentlich kein Unterschied. Mach bitte folgendes:
Für nur mal die 1. FOR-Schleife mit dem entsprechenden ECHO aus. Es sollten dann genau 2 Usernamen auftauchen. Denn die NT* werden gefiltert.


Grüße,
Dani
Bitte warten ..
Mitglied: DerWoWusste
07.09.2009 um 23:20 Uhr
Moin destry!
Das ist keine Vermutung
Meins ja auch nicht. Hab es ja wie gesagt geprüft. Nun muss wohl der Schiri entscheiden...
Bitte warten ..
Mitglied: 73329
08.09.2009 um 09:01 Uhr
01.
C:\>for /F "skip=1 delims=\ tokens=2" %i in ('psloggedon.exe -x -l | findstr "Meine Domäne"') do ( 
02.
echo Username: %i 
03.
04.
 
05.
loggedon v1.33 - See who's logged on 
06.
Copyright ® 2000-2006 Mark Russinovich 
07.
Sysinternals - www.sysinternals.com 
08.
 
09.
 
10.
C:\>
Nicht gerade viel...
Bitte warten ..
Mitglied: 81825
08.09.2009 um 09:21 Uhr
Moin,

es wird vielleicht mehr, wenn du skip rausnimmst:
01.
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.
Bitte warten ..
Mitglied: 73329
08.09.2009 um 12:38 Uhr
Hehe, natürlich hab ich anstelle von "Meine Domäne" die effektive Domäne eingetragen - trotzdem MERCI für den hinweis. Der getrennte Befehl funktioniert soweit und listet die angemeldeten User aus meiner Domäne aus.
Bitte warten ..
Mitglied: 81825
08.09.2009 um 12:41 Uhr
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.
Bitte warten ..
Mitglied: Dani
14.09.2009 um 19:53 Uhr
Moin,
wie ist der Stand der Dinge cybercube?
War leider im kl. Deutschland unterwegs.


Grüße,
Dani
Bitte warten ..
Mitglied: 73329
16.11.2009 um 10:53 Uhr
da bin ich wieder....

Das Skript kann meiner Meinung nach nicht funktionieren, da in der Variabel "%%i" der Wert "Meine Domäne\ TStestUser" gespeichert wird, wobei der Befehl "net user" nur den Usernamen verwenden kann und nicht zusätzlich auch noch die Domäne...

Könnte es auch etwas einfacher gehen mit dem Befehl "net accounts /forcelogoff:5"?
beim ausführen passiert jedoch nicht und der User kann weiter uneingeschränkt weiterarbeiten...
führe ich den befehl falsch aus (gestartet auf dem Terminalserver auf dem der User eingeloggd ist aber die anmeldezeit abgelaufen ist...)?


MERCI
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Server
GPO aktiv trotz Deaktivierung (7)

Frage von XxDarkAngelxX zum Thema Windows Server ...

Windows Server
User-ID zu Application Crash

Frage von pablovic zum Thema Windows Server ...

Router & Routing
Radius für 15 User direkt über Mikrotik- oder Ubiquiti-Router (4)

Frage von Muesliriegel zum Thema Router & Routing ...

Windows 8
gelöst Active Directory Default User.v2 Profile - Windows 8.1 Apps Error (4)

Frage von adm2015 zum Thema Windows 8 ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (24)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...