Login Scripte schreiben

Guten Tag,

ich hab n problem, und zwar wir haben in der schule ein projekt, bei dem ich unteranderem ein Login Script unter win server 2003 erstellen muss, das überprüft, in welchen gruppen der user ist, und ihm je nach dem bestimmte Netzlaufwerke zuweißt. Soweit funktioniert das auch, aber als zusätzliche Aufgabe, hieß es das außerdem noch abgefragt werden soll, ob der user schon einen Homeordner besitzt, wenn ja diesen als netzlaufwerk verbinden, wenn nicht soll er erstellt werden und alle berechtigungen dazu gesetzt werden, z.B. das er halt schreiben lesen änderen darf, und alle anderen benutzer außer der admin nicht drauf zu greifen dürfen, und danach soll es als netzlaufwerk verbunden werden…

hat jemand ne idee wie das gehen soll?

gruß und danke schon mal Nico

Guten Tag,

ich hab n problem, und zwar wir haben in der schule ein
projekt, bei dem ich unteranderem ein Login Script unter win
server 2003 erstellen muss, das überprüft, in welchen gruppen
der user ist, und ihm je nach dem bestimmte Netzlaufwerke
zuweißt.

Man holt sich einen 10l Eimer Alpina Wandweiß aus dem Baumarkt. Kostet 25 Euro oder so :smile:. Zuweist, Freund. Vielleicht solltest Du doch die Deutschstunde etwas ernster nehmen :smile: Sorry, aber ich konnte nicht widerstehen :wink:

Soweit funktioniert das auch, aber als zusätzliche
Aufgabe, hieß es das außerdem noch abgefragt werden soll, ob
der user schon einen Homeordner besitzt, wenn ja diesen als
netzlaufwerk verbinden, wenn nicht soll er erstellt werden und
alle berechtigungen dazu gesetzt werden, z.B. das er halt
schreiben lesen änderen darf, und alle anderen benutzer außer
der admin nicht drauf zu greifen dürfen, und danach soll es
als netzlaufwerk verbunden werden…

hat jemand ne idee wie das gehen soll?

Natürlich. Das ist 08/15 Standard. Aber einen Tipp must Du mir noch geben … WELCHE SPRACHE? Ist es Dir freigestellt, musst Du rein Batch programmieren, darfst Du auch „richtige“ Programmiersprachen verwenden, z.B. den Windows Script Host (wsh), oder gar etwas richtig komfortables (Kixtart, VB, Powershell)?

AL.

Nein rein batch programmieren, mit c++ oder sowas in der art würde ichs hinbekommen, aber mit batch programmierung hab ich leider noch keine Erfahrungen.

Nein rein batch programmieren, mit c++ oder sowas in der art
würde ichs hinbekommen, aber mit batch programmierung hab ich
leider noch keine Erfahrungen.

Nun, so schwer ist das nicht

Ruf mal den „Set“ Befehl auf. Da findest Du zwei Variablen:

%HOMEPATH% enthält den Dateipfad des Home-Verzeichnisses, so wie ihn der Administrator im Benutzerkonto festgelegt hat

%HOMEDRIVE% enthält den Laufwerksbuchstaben.

Und damit löst folgende Zeile Dein Problem:

net use %HOMEDRIVE% %HOMEPATH%

Nun gibt es aber zwei böse Details: ab dem zweiten Login ist das HOMEPATH Laufwerk bereits belegt, weil Windows sich die Laufwerksverbindungen per Standard merkt. Wenn man das übersieht schmeißt der Login-Script eine zwar harmlose, aber benutzernervösmachende Fehlermeldung, dass das Laufwerk schon verbunden sei. Hässlich sowas. Und natürlich kann der Verbindungsvesuch fehlschlagen. Daher ist der typische Homeverzeichnis-Verbinder ein Dreizeiler. In der ersten Zeile killt er eine eventuell vom letzten Login übernommene Verbindung, in der zweiten stellt er sie her, und in der dritten schaut er, ob es geklappt hat.

if exist %HOMEDRIVE%\nul net use %HOMEDRIVE% /delete
net use %HOMEDRIVE% %HOMEPATH%
if errorlevel 1 goto … (irgendeine Fehlerbehandlunsroutine)

Wenns übrigens um einen Domänen-Login geht, verwendest Du statt %HOMEPATH% die Variable %PROFILEPATH%

AL.

Ok, vielen Dank, dass löst einen Teil meines Problems, aber wie erstell ich dann einen Homeordner, falls noch keiner vorhanden ist? und setz dafür Berechtigungen, das zum Beispiel nur die Gruppe Verkauf darauf zu greifen kann und Buchhaltung und Kundendienst nicht, und Vorstand nur lesend?

Ok, vielen Dank, dass löst einen Teil meines Problems, aber
wie erstell ich dann einen Homeordner, falls noch keiner
vorhanden ist? und setz dafür Berechtigungen, das zum Beispiel
nur die Gruppe Verkauf darauf zu greifen kann und Buchhaltung
und Kundendienst nicht, und Vorstand nur lesend?

Soll ich gleich die ganze Hausaufgabe machen…? (Grins).

Das mit dem Home-Ordner erstellen ist nicht weiter schwierig, wenn er sich auf dem Rechenr befinden soll, wo man sich anmeldet. Trifft das zu (Login-Scripts werden eigentlich meistens in Domänen verwendet - aber ich weiß natürlich nicht, was Dienem Lehrer so eingefallen ist.

Also nehmen wir an, es wäre ein lokaler Login.

Erst mal sehen ob der Ordner existiert, und wenn nicht, machen wir einen und setzen Rechte drauf.

if exist %HOMEPATH% Goto HabSchon
md %HOMEPATH%
cacls %HOMEPATH% -G Vertrieb:F Marketing:R

HabSchon

Hab allerdings die Parameter von cacls nicht mehr im Kopf, könnte leicht abweichend sein --> cacls /?

AL.

Nein nein nich die ganze :wink:
Das mit den Scripten ist nur eine kleinere Aufgabe unseres Projekts.
Aber was ich vergessen habe zu Erwähnen, dass der Login über die Domäne ist :wink:
Hätte ich vllt früher erwähnen sollen.
Aber ich habs getestet mit dem

if exist %HOMEPATH% Goto HabSchon
md %HOMEPATH%
cacls %HOMEPATH% -G Vertrieb:F Marketing:R

HabSchon

Funktioniert super, danke nochmal, aber hast du vllt auch eine Idee wie das über die Domäne geht? :wink:

Weil eigentlich wollte ich unseren Windowslehrer fragen, aber der hat von Batchscripten auch nicht viel Ahnung.

aber hast du vllt auch eine
Idee wie das über die Domäne geht? :wink:

Sure. Der Pfad wird in der zentralen Benutzerverwaltung der Domäne unter den Account-Eigenschaften in der Karteikarte „Profil“ eingegeben.

In der Regel möchte man allerdings keinen lokalen Pfad haben, sondern auf einen Netzwerkserver verweisen. Das Kunststück ist dann, dort mit den Rechten eines Users (es läuft ja sein Login-Script) ein Verzeichnis anzulegen, mit Rechten zu bestücken und eventuell sogar freizugeben.

Mit einem geschickt gewählten Unterverzeichnis und unter Ausnützung der NTFS Rechtevererbung kann man das hinbekommen, aber sonderlich betriebssicher ist das nicht. Deshalb legen die Admins idR beim Anlegen des Domänen-Accounts auch gleich die für den User notwendigen Verzeichnisse und Recht an - idR brauhct es ja noch viel mehr als nur ein nacktes Verzeichnis. und Laptopuser wollen das Ding gleich als Offline-Ordner konfiguriert haben, und quotieren muss man es idR auch, weil sonst jeder ein tägliches Backup seiner Systemfestplatte auf den Server schiebt, und und und.

Sowas mit Batches zu machen ist zwar theoretisch möglich - man kann theoretisch auch mit einem Teelöffel eine Autobahnunterführung buddeln - aber wer sowas vor hat macht es sinnvoller Weise mit einer richtigen Programmiersprache.

Batches sind Steinzeit, und seit beim Betriebssystem zumindest der Windows Script Host (wsh) gratis und immer mit dabei ist gibt es keinen Grund mehr, sich mit ihnen herumzuplagen.

AL