aha261
Goto Top

Loginscript mit Spezialfunktion

Hallo zusammen. Ich habe kürzlich den Auftrag erhalten ein neues Loginscript zu erstellen. Zwar gibt es bereits verschiedenste Tutorial zur Erstellung solcher Scripts, aber nichts was mir für meine Aufgabe wirklich weiterhelfen würde, oder zumindest nicht in dem knappen Zeitrahmen der mir gesetzt wurde. Deshalb habe ich einige Fragen an euch.

Zu dem Script das ich erstellen soll. Die Grundfunktion ist eigentlich einfach, es soll anhand der ActiveDirectory Usergruppenzugehörigkeit Netzlaufwerke mappen. Gehört User X zu Gruppe B wird also auch Laufwerk B gemappt.

Meine erste Frage: Was für eine Scripsprache würdet ihr mir für die Lösung dieser Aufgabe vorschlagen? Ausgenommen Kix.

Meine zweite Frage: Hättet ihr unter Umständen auch gleich ein Lösungsbeispiel in einer/dieser Scriptsprache, oder ein Tutorial für die Erstellung? Bedenkt bitte, ich habe nicht die Zeit mich lange in die Sprache einzuarbeiten.

Und meine dritte Frage: Mir wurde bereits die Powershell für die Lösung dieses Problems nahe gelegt. Für wie sinnvoll schätzt ihr eine Lösung mit der Powershell ein? Und wenn so was für euch in betracht käme, welche .net oder .com Objekte und/oder cmdlets wären nötig um auf das ActiveDirectory in der weise zugreifen zu können?

Vielen Dank für die Hilfe

Content-Key: 66438

Url: https://administrator.de/contentid/66438

Printed on: April 24, 2024 at 23:04 o'clock

Member: Karo
Karo Aug 17, 2007 at 09:21:38 (UTC)
Goto Top
Hi,

na dann wollen wir Dir doch mal die Arbeit abnehmen ... face-wink

Allles was Du brauchst ist IFMEMBER aus dem Windows Server Resource Kit und ne CMD-Datei

Syntax:
ifmember "<DOMAIN>\<GROUPNAME>"
if errorlevel 1 NET USE <LW> \\<SERVER>\<SHARE>


Warum nicht KIX?
$drive_group="<GROUPNAME>"
if ingroup("$drive_group") <>0
$drive_name="H:"
$drive_share="\\<SERVER>\<SHARENAME>"
endif
use $drive_name /delete
use $drive_name $drive_share

Kann man 'türli auch wunderhübsch mittels Array aufpumpen face-smile

ciao
Karo
Member: aha261
aha261 Aug 17, 2007 at 12:54:42 (UTC)
Goto Top
Herzlichen Dank Karo, dass sieht zumindest auf den ersten Blich wirklich so aus wie wenn du mir die Arbeit abgenommen hättest. Aber einige Verständnissfragen hätte ich da immer noch.

1. Was genau gibt das System nach diesem Scriptteil zurück?

ifmember "<DOMAIN>\<GROUPNAME>"

Ich gehe mal von dem Wert "1" für true aus. Dieser Wert wird automatisch in die errorlevel Variabel geschrieben falls keine andere Variabel angegeben wird. Was dann auch den Rest des Scriptes erklären würde:

if errorlevel 1 NET USE <LW> \\<SERVER>\<SHARE>

Habe ich das so richtig verstanden?

2. Wie kann ich die Laufwerksbuchstaben dynamisch zuweisen lassen?

Vielen Dank
Member: Karo
Karo Aug 17, 2007 at 20:27:31 (UTC)
Goto Top
1) korrekt. 1 bedeutet bei IFMEMBER True, also er ist in der Gruppe. Die ERRORLEVEL Variable ist fix. Also keine andere Variable möglich. Wenn Du nun also
if errorlevel 1 NET USE L: \\MEINSERVER\MEINEFREIGABE
dann wird die Freigabe MEINEFREIGABE des Servers MEINSERVER auf Laufwerk L gelegt

2) Variable nur in dem Sinne, das Du * statt <LW>: nehmen kannst. Dann wird der nächst freie Laufwerksbuchstabe (bei XP von Z nach A) gemappt. Falls Du mehrere Gruppen mappen willst, dann rate ich Dir von dynamischen oder unterschiedlichen Laufwerksmappings der Übersicht halber dringend ab. Mappe für jede Gruppe immer denselben Buchstaben. Das erleichtert die Fehlersuche. Zudem vor dem mappen IMMER ein net use <LW>: /D, damit der Buchstabe auch wirklich frei wird und nicht schon/noch genutzt wird. Nimm für Mappings lieber höher liegende Buchstaben, da meist im vorderen Bereich Partitionen, USB, DVD etc gesetzt sind.


Wenn Du im übrigen bei einem User der in der lokalen Administratorengruppe ist folgendes eingibst:
ifmember /v administratoren
dann kommt folgende Meldung
Group VORDEFINIERT\Administratoren matches list


bye
Karo
Member: aha261
aha261 Aug 22, 2007 at 11:29:29 (UTC)
Goto Top
Hallo Karo

Herzlichen Dank. Funktioniert alles prima. Danke für die Hilfe.