gogoflash
Goto Top

Anleitung: Anmeldeskript mit Kix erstellen -Part 1- Drucker und Laufwerke

Mit diesem Tutorial soll ein kleiner Einblick in die Fähigkeiten von Kixstart, zur Nutzung als Anmeldeskript, gegeben werden. Besonders die Verbindung von Laufwerken und ein Bindung bzw Löschen von Druckern über dieses Skript. Falls Bedarf besteht, wird dieses Skript erweitert (Registrykeys verteilen, Verschönerungen und Aufruf von externen Programmen und Skripten usw)


Sagen wir mal wir haben 2 Server. ServerA beinhaltet die Freigaben und ServerB die Drucker.

back-to-topDefinieren von Variablen:

 
$fs01="\ServerA"  
$ps01="\ServerB"  
$as01="\ServerC"  

Mit diesen Definitionen können wir im Skript einfacher operieren. Das macht sich immer ganz gut. Besonders dann wenn die Drucker von ServerB zum ServerC umziehen möchten. Dann reicht die Änderung in dieser Variablen. (Mehr dazu unten)

back-to-topLaufwerke:


Laufwerk löschen:
use F: /delete
Laufwerk verbinden:
Use F: $fs01+"FreigabeA"  
Verbindet uns die FreigabeA mit dem Laufwerk F:.

Jetzt wollen wir nur den Mitglieder der GruppeA oder der Gruppe B dieses Laufwerk verbinden.
IF (InGroup ("GruppeA") OR Ingroup ("GruppeB"))  
Use F: $fs01+"FreigabeA"  
EndIf 

(EDIT am 12.12.05face-smile
Hierbei spielt es keine Rolle, ob es sich um lokale oder AD-Gruppen handelt. Zuerst wird der lokale Rechner geprüft, dann der Server. Mit der Gruppenzugehörigkeit Benutzer bzw Administratoren, die ja bei beiden existiert, fällt man dann auf die Sch.....
Also auf dem Server eigene Gruppennamen benutzen.

back-to-topDrucker:

Wir haben auf dem ServerB einen Drucker mit der Freigabe DruckerA.
AddPrinterConnection ($ps01+"druckerA")  
Use LPT4: $ps01+"druckerA"  

Das reicht damit am Client der DruckerA installiert wird.
Für jeden Drucker sollte man eine anderen LPT Port nutzen, das versteht sich von selbst.

back-to-topDrucker löschen: (wenn zb nicht mehr vorhanden oder woanders hingezogen)

DelPrinterConnection ($ps1+"druckerA")  


back-to-topStandardrucker

Mit SetDefaultPrinter ($ps1+"druckerA") setzt man den DruckerA zum Standarddrucker.

back-to-topUmzug eines Druckers bzw Einbindung eines Backupdruckservers.


Wir haben jetzt 2 Druckerserver. ServerB ist der primäre und ServerC ist für den notfall gedacht, oder denkt euch ein anderes Szenario.

Nochmal die Definitionen
$ps01="\ServerB"  
$as01="\ServerC"  
Jetzt erstmal der Code:
AddPrinterConnection ($ps01+"druckerA")  
Use LPT4: $ps01+"druckerA"  
DelPrinterConnection ($as1+"druckerA")   

Was macht er ?
AddPrinterConnection($ps01....) verbindet uns mit dem primären Druckerserver. DelPrinterConnetion löscht uns die Verbindung zum Backupserver.
Warum machen wir das so?
Tauschen wir jetzt oben in der Definition, die beiden Server, wird die Verbindung zum Backupdruckserver aufgebaut und die Verbindung zum stillgelegten primären Druckserver entfernt. Das macht die Druckumgebung für die Nutzer übersichtlicher und die Anfragen, "warum kann ich nicht Drucken" minimieren sich.


back-to-topEinbinden einer .CMD ins KIX

Damit ein Umstieg auf Kix nicht so weh tut face-smile

SHELL "%COMSPEC% /C F:scriptecommandos.cmd"  
SHELL "%COMSPEC% /C echo hallo"  

Startet das Skript commandos.cmd. Die Variable Comspec dürfte bekannt sein.
Das zweite gibt uns einfach ein Hallo aus.
So lassen sich DOS Befehle leicht einbinden.

Alternativ kann man auch den RUN Befehl nutzen.Der Unterschied zwischen den Beiden ist, dass bei SHELL das KIX Skript unterbrochen wird bis der Befehl beendet wurde. Bei RUN wird das KIX Skript weitergeführt und das externe Programm läuft parallel weiter. Sonst sind die Befehle von der Syntax indentisch.

Sollte man noch mit einer alten Login.cmd arbeiten und möchte nicht bei allen nutzern das Loginscript umändern.
So startet man KIX über DOS mit kix32.exe logon.kix.
Liegt das Kixskript in der NETLOGON Freigabe muss vorher folgender Befehl gesetzt werden.
@ECHO OFF
%0..kix32.exe %0..logon.kix 
Damit DOS die EXE auch findet.


back-to-topZusammenfassung:

Alles zusammen in einem Skript.
;---------------------- snip ------------------
; Beginn von main.kix
; Verhindert abbrechen des Skriptes
Break off
; Versteckt das Command Prompt von Kix
SetConsole("Hide")  

;Definieren der Server
$fs01="\ServerA"  
$ps01="\ServerB"  
$as01="\ServerC"  

; Löschen von F:
Use F: /delete

IF (InGroup ("GruppeA") OR Ingroup ("GruppeB"))  
Use F: $fs01+"FreigabeA"  
EndIf 

AddPrinterConnection ($ps01+"druckerA")  
Use LPT4: $ps01+"druckerA"  
DelPrinterConnection ($as01+"druckerA")   

IF (InGroup ("GruppeB))  
AddPrinterConnection ($ps01+"druckerB")  
SetDefaultPrinter ($ps1+"druckerB")  
Use LPT5: $ps01+"druckerB"  
DelPrinterConnection ($as01+"druckerB")   
EndIF

;Jetzt binden wir noch ein paar CMD Befehle ein
SHELL "%COMSPEC% /C F:scriptecommandos.cmd"  

;Ende
;--------------- schnapp --------------------------------

Aufruf des Skriptes über "kix32.exe main.kix"

Wie gesagt, das soll nur auf die Möglichkeiten von Kix eingehen, und zeigt bei weitem, nicht alles was diese Sprache anbietet. Aber es ist ein kleiner Schritt, es hier als Tutorial anzubieten.

Weitere Möglichkeiten von Kix für die nächsten Tutorials (beileibe nicht vollständig):
- Anhand der IP-Adresse bestimmte Skripte ausführen. Für ein AD mit mehreren Standorten ideal. (siehe Part 2)
- Registryschlüssel ändern/auslesen
- Installation von Software
u.u.

Weiter zu Part 2
Anleitung: Anmeldeskript mit Kix erstellen -Part 2- Mehrere Netzwerke


Gruß Miguel

Content-ID: 21374

Url: https://administrator.de/tutorial/anleitung-anmeldeskript-mit-kix-erstellen-part-1-drucker-und-laufwerke-21374.html

Ausgedruckt am: 22.12.2024 um 14:12 Uhr

apohl
apohl 12.12.2005 um 08:43:40 Uhr
Goto Top
Hi Miguel,

super, daß sich mal jemand an so ein HowTo setzt .... wenn Du das HowTo fortführst, dann wäre auch ein Mapping von Freigaben anhand der Gruppen-Zugehörigkeiten im AD eine tolle Idee. Ich habe vor Jahren Wochen gebraucht, um das auf die Beine zu bekommen.

Gruß aus Bonn, André
gogoflash
gogoflash 12.12.2005 um 09:05:57 Uhr
Goto Top
Hi,

danke fürs Lob. War anfangs auch nur als Schnupperkurs gedacht, aber jetzt Bau ich das aus.

Zum Ingroup Befehl.
der INGROUP Befehl prüft zuerst lokal, dann im AD die Gruppenzugehörigkeit des Nutzers. Das macht er ohne zutuen.
Die Gruppen sollten dann auf dem Server natürlich anders heißen.Sonst bricht er vorher ab.Ich weiß jetzt nicht seit welcher Version dies so ist, aber früher, kann sein, dass es nicht so einfach ging.

Gruß Miguel