Tag Archive | "script de connexion windows"

Tags: ,

Kixtart: un langage de script pour vos ouvertures de session Windows

Posted on 20 May 2010 by Thomas Ginestet

Kixtart ( à ne pas confondre avec Kickstart de RedHat ) est un langage de script utilisé principalement pour effectuer les ouvertures de sessions sous Windows. Il est gratos ( et pourtant développé par un mec de chez Krosoft, c’est dire ! ) et super simple à utiliser. Il parait qu’il permet aussi une exécution plus rapide de l’ouverture de session que ne le ferait un vbscript…

Pour ma part, je l’ai intégré dans un contrôleur de domaine Samba à la place du bon vieux logon.bat en place.

Le principe est donc sensiblement le même, à savoir un script ( lancé avec les droits de l’utilisateur courant ) qui va parser vos droits et groupe(s) d’appartenance et mapper votre ou vos lecteurs réseaux en fonction de cela.

Je vous invite à vous rendre sur le helpdesk Kixtart http://helpdesk.kixtart.org avant de parcourir mon script afin de voir à quoi correspondent les macros et fonctions utilisées.
Votre script devra porter l’extension .kix et en fonction de votre parc clients (98 ?!, XP, Vista), vous aurez à placer ou non dans votre répertoire de logon ( genre //pdc/netlogon ;-) ) des .dll et .exe requis par Kixtart. Encore une fois, RTFM sur http://www.kixtart.org ou sur le helpdesk.

Notez le truc con, l’exécution de votre script se fera par l’intermédiaire d’un batch.

Voici dans les grandes lignes à quoi peut ressembler un script de connexion:

DEBUG OFF  ; DEBUG ON active le mode debug qui est  vraiment pratique en cas de soucis
; Initialise les variables pour les serveurs / partages  windows
$serveur5 = \\v5
$serveur2 = \\v2
;  ******************** Let's rock ***************************
;  ****************
; *******
; Place un raccourci  applicatif sur le bureau de l'
utilisateur
IF NOT EXIST ("c:\Documents and Settings\@USERID\Bureau\mon raccourci.url")
COPY @LDRIVE+"mon raccourci.url" "c:\Documents and  Settings\@USERID\Bureau" /r/c/h
ENDIF
? " copie de mon raccourci.url"
IF @ERROR <>  0
? @ERROR
ENDIF
; Synchronisation avec le serveur de temps du réseau
SETTIME @LSERVER
IF @ERROR <> 0
? @ERROR
ENDIF
;  On supprime les connexions persistantes potentielles
USE * /Delete /Persistent
; Affiche un message de bienvenue
?  "--------------------------------------------------"
? "Bienvenue sur le domaine "+@LDOMAIN+" "+@FULLNAME
? "Vous utilisez le poste de travail @WKSTA"
?  "--------------------------------------------------"
? ""
; Notifie si le mot de passe est hors d'âge
IF @PWAGE > 79
MESSAGEBOX ("Votre mot de passe a "+@PWAGE+" jours. Pour des raisons de securite, merci de le changer.","CHANGEMENT DU MDP",0)
ENDIF
; Mapping des lecteurs réseaux
?  "Connexion aux lecteurs du reseau..."
?  "..................................................."
;;;;;;;;;;;;;
;  on va commencer par les disques perso des utilisateurs
;;;;;;;;;;;;;
IF  @USERID = "administrateur" GOTO Exit ENDIF ; pas besoin de monter de lecteur pour l'
admin
USE U: /delete
USE U: @LSERVER+"\"+@USERID
IF @ERROR <> 0
? "
Error mapping drive U !"
ENDIF
;;;;;;;;;;;;;
;  maintenant on va mapper les lecteurs réseaux des utilisateurs avec droits spécifiques
;;;;;;;;;;;;;
SELECT</p>
CASE @USERID = "
utilisateur1"
USE P: /delete
USE P: @LSERVER+"
\privee"
IF @ERROR <> 0
? "
Error mapping drive privee !"
ENDIF
USE Q: /delete
USE Q: $serveur5+"
\partage"
IF @ERROR <> 0
? "
Error mapping drive partage !"
ENDIF
CASE @USERID = "
utilisateur2"
USE R: /delete
USE R: @LSERVER+"
\documents"
IF @ERROR <> 0
? "
Error mapping drive documents !"
ENDIF
ENDSELECT
;;;;;;;;;;;;;;
; On va mapper ensuite les lecteurs réseaux communs en fonction des groupes d'appartenance
;;;;;;;;;;;;;;
IF EXIST ("
@LSERVER\@PRIMARYGROUP") = 1
USE O: /delete
USE O: "
@LSERVER\@PRIMARYGROUP"
IF @ERROR <> 0
? "
Error mapping drive @PRIMARYGROUP !"
ENDIF
ENDIF
;;;;;;;;;;;;;;
; On va mapper les lecteurs réseaux communs spécifique à certains groupes d'appartenance
;;;;;;;;;;;;;;
IF @PRIMARYGROUP = "
ungroupe"
USE P: /delete
USE P: $serveur2+"
\d$"
IF @ERROR <> 0
? "
Error mapping drive d$ !"
ENDIF
ENDIF
Exit

Vous voyez, c’est vraiment pas sorcier. Ca m’a aussi permis de réduire de moitié la taille de mon script de connexion par rapport à mon ancien logon.bat.

Je vous ai présenté une utilisation assez basique de Kixtart, cependant il ne faut pas le réduire à une simple fonction de mappage réseau. Vous pouvez vous en servir pour effectuer des opération bien plus puissantes telles que des installations et mises à jour d’applicatifs (ex: antivirus), des interactions avec des fichiers Words ou Excel, des interfaces graphiques, etc.

Comments (0)