Login - Logout - Mehrfachanmeldung verhindern
Um bei Bedarf nachvollziehen zu können, wer sich wann an welchem Rechner angemeldet hat(te), habe ich - nach etlichen Anregungen aus der Winmuster-Liste - eine Batchdatei zusammengestellt.
Diese soll auch gleich noch erschweren, dass ein Login missbräuchlich benutzt wird. Statt dessen soll der Benutzer mit der Notwendigkeit konfrontiert werden, sein eigenes Login zu nutzen und dieses vor allem nicht weiter zu geben.
Auch diese Anleitung wurde noch einmal überarbeitet, nach dem Herr Wilhelm Karl mir eine bessere Lösung anstelle des Tools POWEROFF zeigte.
Ich möchte mich hier nicht mit fremden Federn schmücken, sondern lediglich etwas weiter geben, was ich in dieser Form für brauchbar erachte.
Das Ganze beruht auf vier Batchdateien,
(mittlerweile) dem Tool DOWN
(z.B. bei der Adresse http://www.losoft.de
und dort unter LS-Tools erhältlich),
einer GPO und
einem geplanten Task.
Schritt 1
Auf dem/einem der Server wird ein Verzeichnis namens LOGS erstellt. In diesem Verzeichnis drei Unterverzeichnisse namens USER , CLIENT und BATCH.
Auf dieses Verzeichnis LOGS sollten Administrator und SYSTEM Vollzugriff haben, die G_Benutzer Änderungs- und Löschrechte. Die Gruppe JEDER kann man (sollte man) dann getrost entfernen - wenn es geht.
Schritt 2
Das Verzeichnis LOGS wird dann unter dem Namen LOGS$ freigegeben.
Wenn man das Verzeichnis mit der rechten Maustaste anklickt und dann den Punkt FREIGABE auswählt, erhält man ein Einstellfenster, auf dem man die BERECHTIGUNGEN noch überprüfen und gegebenenfalls anpassen muss - siehe weiter oben unter Schritt 1.
Schritt 3
In der Freigabe PGM$ des Servers legt man ein Verzeichnis namens DOWN an, in welches man das Tool DOWN.EXE kopiert. Administratoren und SYSTEM bekommen wieder Vollzugriff, die G_Benutzer dürfen es nur lesen, auflisten und ausführen.
Schritt 4
Im Verzeichnis BATCH werden nun die folgenden vier Batch-Dateien abgelegt:
- - - - - BEGINN LOGIN.BAT - - - - -
::
Zunächst ist hier der Servername zu hinterlegen
::
SVRN1 - Name des Servers mit der Freigabe logs$
SET SVRN1=
::
SVRN2 - Name des Servers mit der Freigabe PGM$
SET SVRN2=
::
Überprüfung auf Mehrfachanmeldung mit gleichem LogIn
::
Ist bereits ein anderer PC mit dem gleichen LogIn angemeldet,
::
wird der eigene PC herunter gefahren
IF EXIST \\%SVRN1%\logs$\%computername%.pc DEL \\%SVRN1%\logs$\%computername%.pc
FIND /i "%username%" \\%SVRN1%\logs$\*.pc
IF ERRORLEVEL 1 GOTO KeinFund
\\%SVRN2%\PGM$\down\down.exe /L /Q /F
:KeinFund
ECHO %username%>\\%SVRN1%\logs$\%computername%.pc
::
Logeintrag in der Datei %username%.txt
IF NOT EXIST \\%SVRN1%\logs$\user\%username%.txt ECHO %username%>\\%SVRN1%\logs$\user\%username%.txt
ECHO.>>\\%SVRN1%\logs$\user\%username%.txt
ECHO Anmeldung %date% %time% %computername%>>\\%SVRN1%\logs$\user\%username%.txt
::
Logeintrag in der Datei %computername%.txt
IF NOT EXIST \\%SVRN1%\logs$\client\%computername%.txt ECHO %computername%>\\%SVRN1%\logs$\client\%computername%.txt
ECHO.>>\\%SVRN1%\logs$\client\%computername%.txt
ECHO Anmeldung %date% %time% %username%>>\\%SVRN1%\logs$\client\%computername%.txt
- - - - - ENDE LOGIN.BAT- - - - -
- - - - - BEGINN LOGOFF.BAT- - - - -
::
Zunächst ist hier der Servername zu hinterlegen
::
SVRN1 - Name des Servers mit der Freigabe LOGS$
SET SVRN1=
::
Löschen der Sperrdatei %computername%.pc
IF EXIST \\%SVRN1%\logs$\%computername%.pc DEL \\%SVRN1%\logs$\%computername%.pc
::
Log der Abmeldevorgänge
ECHO Abmeldung %date% %time% %computername%>>\\%SVRN1%\logs$\user\%username%.txt
ECHO Abmeldung %date% %time% %username%>>\\%SVRN1%\logs$\client\%computername%.txt
- - - - - ENDE LOGOFF.BAT - - - - -
- - - - - BEGINN KEHRAUS.BAT- - - - -
::
KEHRAUS.BAT
::
sorgt dafür, dass übrig gebliebene Sperrdateien
::
auch wieder verschwinden
::
Dazu sollte man diese Batch-Datei
::
täglich automatisch
::
nachts ausführen lassen.
::
siehe START PROGRAMME ZUBEHÖR SYSTEMPROGRAMME - Geplante Tasks -
DEL \\%computername%\logs$\*.pc > nul
EXIT
- - - - - ENDE KEHRAUS.BAT - - - - -
- - - - - BEGINN WARTUNG.BAT- - - - -
::
WARTUNG.BAT
::
sorgt dafür, dass die Logdateien
::
nicht all zu groß werden
::
Dazu sollte man diese Batch-Datei
::
wöchentlich oder 14-täglich automatisch
::
nachts ausführen lassen.
::
siehe START PROGRAMME ZUBEHÖR SYSTEMPROGRAMME - Geplante Tasks -
::
Umbenennen und löschen älterer CLIENT-Verzeichnisse
RD /s /q \\%computername%\logs$\oldclient
REN \\%computername%\logs$\client oldclient
MD \\%computername%\logs$\client
::
Umbenennen und löschen älterer USER-Verzeichnisse
RD /s /q \\%computername%\logs$\olduser
REN \\%computername%\logs$\user olduser
MD \\%computername%\logs$\user
EXIT
- - - - - ENDE WARTUNG.BAT - - - - -
Diese vier Batch-Dateien erstellt man, indem man den Text zwischen den gestrichelten Linien markiert, kopiert und dann in ein neues Dokumnet des Editors einfügt. (START PROGRAMME ZUBEHÖR EDITOR)
Oder man klickt hier und lädt eine ZIP-Datei, welche alle vier Batch-Dateien enthält.
Hinter SET SVRN1= ist dann noch der Servername einzugeben, auf welchem sich die Freigabe LOGS$ befindet.
Hinter SET SVRN2= ist dann noch der Servername einzugeben, auf welchem sich die Freigabe PGM$ befindet.
Schritt 5
Nun muss mittels einer Gruppenrichtlinie dafür gesorgt werden, dass diese Skripte zum richtigen Zeitpunkt ausgeführt werden.

Dazu erzeugt man für die Benutzer eine neue Richtlinie - EIGENE_RICHTLINIE, die wie folgt zu bearbeiten ist:

Für den Anmeldevorgang:

Für den Abmeldevorgang:

Schritt 6
Da es vorkommen kann, dass sich jemand nicht richtig abmeldet, wäre es durchaus möglich, dass die Sperrdatei nicht gelöscht wird und der Benutzer sich an einem anderen Computer nicht mehr anmelden kann. Um hier zusätzliche Arbeit für den Administrator zu vermeiden, wird z.B. abends die Datei KEHRAUS.BAT automatisch gestartet und löscht dann alle übrig gebliebenen Sperrdateien.
(START - PROGRAMME - ZUBEHÖR - SYSTEMPROGRAMME - GEPLANTE TASKS)
Zur gefälligen Beachtung
In den Verzeichnissen CLIENT bzw. USER entstehen für jeden PC bzw. jeden Benutzer eine Text-Datei. Diese werden beim An- und Abmelden gesucht, geöffnet, beschrieben und wieder geschlossen. Wenn dies geschieht, während gleichzeitig mehrere Benutzer ihr Profil laden, hat der Server im übertragenen Sinn alle Hände voll zu tun. Das kann sich in der Anmeldephase durch unliebsame Verzögerungen bemerkbar machen. Mit jeder Anmeldung wachsen diese Dateien, was nach einiger Zeit ebenfalls einen hemmenden Einfluss auf die Startphase nehmen kann.
Man sollte also schon überlegen, ob man dieses Verfahren nutzen möchte. Am Besten ausprobieren und dann entscheiden. Und von Zeit zu Zeit die Dateien in den Verzeichnissen CLIENT und USER löschen.
Damit letzteres regelmäßig und automatisch geschieht, kann man die Batch-Datei WARTUNG.BAT z.B. wöchentlich oder monatlich als geplanten Task laufen lassen. Sie benennt die Verzeichnisse der LOG-Dateien um und löscht sie dann auch beim nächsten Lauf. Und sie erzeugt auch gleich leere Log-Verzeichnisse, sodass die Anmeldungen reibungslos weiter laufen können.
Verhinderung von Mehrfachanmeldungen
Im Verzeichnis LOGS werden beim Anmelden Textdateien der Form <Computername>.pc angelegt In diesen Dateien - den Sperrdateien - stehen die Benutzernamen. Beim regulären Abmelden werden diese Dateien jeweils vom entsprechenden PC wieder gelöscht.
Zuvor wird beim Anmelden überprüft, ob es evt. eine Datei gibt, die bereits den Benutzernamen enthält. Ist dies der Fall, wird der PC per DOWN.EXE wieder abgemeldet. Wer also sein Passwort weitergibt oder ein fremdes benutzen möchte, legt sich damit nur selbst herein.
Wer auf die Sache mit der Mehrfachanmeldung verzichten möchte, lösche die entsprechenden beiden Abschnitte in LOGIN.BAT und LOGOFF.BAT. Dann ist auch die Abarbeitung der Datei KEHRAUS.BAT nicht notwendig.
Was wird in die LOG-Dateien geschrieben ?
Im Unterverzeichnis CLIENT erscheinen Textdateien mit den Namen der Rechner.
In einer solchen Datei werden Datum, Uhrzeit und Benutzername bei der Anmeldung und bei der Abmeldung eingetragen. Wird beispielsweise ein PC beschädigt, und lässt es sich nachvollziehen, wann diese Beschädigung auftrat, kann man so feststellen, wer an dem Rechner zur fraglichen Zeit angemeldet war. Wichtig dabei ist natürlich, dass jeder Benutzer seinen eigenen Login benutzt.
Im Unterverzeichnis USER erscheinen Textdateien mit dem Namen der Benutzer.
In einer solchen Datei werden Datum, Uhrzeit und Computername bei der Anmeldung und bei der Abmeldung eingetragen.
Und wenn es doch nicht tut wie es soll?
Nun ja - getestet habe ich das alles auf W2K-Systemen. Ich hoffe mal, dass W2K3 da auch nicht zu anders funktioniert.
Sollte etwas nicht wie erwartet laufen - oder auch anders besser - meine Email-Adresse ist: gauwitz@gmx.de
(F.Gauwitz)