Les scripts d'ouverture de session
avec Kixtart V3.63
Cette page explique comment utiliser Kixtart pour les scripts d'ouverture de session.
Pour la version 4.10 de Kixtart, cliquez ici.
Les scripts d'ouverture de session ont pour but d'exécuter des tâches sur les ordinateurs ouvrant une session sur un domaine. L'intérêt pour l'administrateur est d'automatiser certaines actions, comme par exemple nettoyer le répertoire temporaire des clients Windows 9x, ou encore déployer de manière automatique certaines applications.
Un script stocké sur les contrôleurs de domaine est exécuté localement sur chaque machine ouvrant une session sur ce domaine.
Divers logiciels du marché tels que SMS permettent d'effectuer ce type
de tâches, mais ils sont payants et parfois trop chers pour de petites
structures.
Un Freeware indiqué par Microsoft est KixTart.
Il permet, sous forme d'un langage type BASIC, d'effectuer de nombreuses instructions
(boucles, test conditionnels, affichage via fenêtres, lecture/écriture
de la base de registre, ...)
J'ai eu l'occasion de mettre en oeuvre ce CareWare (Freeware avec donations
à des oeuvre humanitaires) et donc d'écrire un petit bout de script.
Les scripts doivent impérativement être présents dans la ressource NETLOGON de chaque contrôleur de domaine. Ce point est primordial car l'authentification peut être effectuée aléatoirement par n'importe lequel des contrôleurs du domaine.
Le fichier présenté est enregistré sous le nom de "MainScript.bat".
L'exemple présenté est celui que j'ai utilisé chez ESKER. Il permet :
Dans le cas précis de ma méthode de travail, j'ai créé 2 fichiers strictements identiques. Le premier nommé "MainScript.bat" et le second "MainScriptd.bat" ; celui-ci me servant pour le débuggage.
Concernant le paramètrage pour les utilisateurs, le script exécuté est nommé "LogCOMMON.bat" pointant sur un second, ce qui me permet de définir un groupe d'utilisateurs "test" pour débugger et valider mon code ; ceux-ci ayant alors pour script "LogCOMMONd.bat".
Pour l'architecture "réseau", les applications se trouvent sur un serveur appelé "ntprincipal" dans une ressource "SoftsESKER". Une arborescence appropriée permet d'y classer les applications utilisées.
Noter toutefois, pour les utilisateurs de McAfee, que le dossier contenant le "SuperDatFile" (fichier de type Sdat4103.exe) ne doit contenir qu'un seul et unique "SuperDatFile" à la fois, sinon la détection de la version ne peut s'effectuer et le déploiement de la mise à jour n'a pas lieu.
LogCOMMON.bat
|
LogCOMMONd.bat
|
@echo
off |
@echo
off |
La différence réside dans la ligne de commande où le scripts de débuggage invoque le second script de débuggage avec le paramètre "/d", permettant de faire fonctionner en mode "pas-à-pas".
Exemple de contenu de la ressource NETLOGON (ne sont pas présents les fichiers nécessaires de KixTart) :
LOGCOM~1 BAT 666 25/08/00 15:51 LogCOMMON.bat
LOGCOM~2 BAT 667 23/10/00 13:17 LogCOMMONd.bat
MAINSC~1 BAT 28 383 10/11/00 14:16 MainScript.bat
DUPONT BAT 112 01/09/00 20:05 Dupont.bat
DURANT BAT 112 01/09/00 20:05 Durant.bat
MAINSC~2 BAT 28 383 10/11/00 14:15 MainScriptd.bat
;
; ===================================
; Script d'ouverture de session : fichier MainScript.bat
; ===================================
;
; Version du 7/11/2000 - 11h15
;
;
; ntprincipal est le CPD du domaine
; Pour autoriser ou interdire
le passage dans une section, il faut avant tout créer des groupes globaux
au niveau
; du domaine. Il suffit alors de mettre les utilisateurs qui ne seront pas concernés
par une section dans le groupe
; correspondant.
; Les groupes d'installation sont :Kxt_NoWALL, Kxt_NoWinZIP, Kxt_NoMcAfee,Kxt_NoACRO
;Les services de la société
sont associés à des groupes d'utilisateurs :
; - Kxt_ADV
; - Kxt_COMPTA
; - Kxt_DOC
; - Kxt_IC
; - Kxt_ITS
; - Kxt_MKTG
; - Kxt_PACK
; - Kxt_PROD
; - Kxt_QUALITE
; - Kxt_RH
; - Kxt_SALES
; - Kxt_SUPPORT
;Ici se trouvent ttes les commandes communes à toutes les machines de
la société.
$Taille_Max = 100 ; Taille max (en KO) du fichier de Log
$ICPhone = " Pour toute
question ou aide, appeler IC au 150 ou 163."
$LogPath = "\\ntprincipal\log\"
$regPath="HKEY_LOCAL_MACHINE\SOFTWARE\"
$ICRep="$IC$"
;On cache la fenêtre
"Command" lors du script
$RC=SetConsole("HIDE")
; On crée un repertoire
ds chaque PC qui se connecte. On pourra y placer des données
If exist("@LANROOT\$ICRep\*.*")
GOTO "REP_OK"
else
MD "@LANROOT\$ICRep"
EndIf
:REP_OK
;
;DEFINIR UN SERVEUR NT COMME SERVEUR DE TEMPS
;-------------------------------------------------------------------
;Dans la base de registre, localiser la clef suivante :
;
; HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters
;
;Depuis le menu Edition, sélectionner "Ajouter une valeur."
;
; Nom de la valeur : TimeSource
; Type de donnée : REG_DWORD
; Chaîne : 1
;
;Sélectionner OK et quitter l'éditeur du registre.
;
;Redémarrer Windows NT.
;
; ==================================================================
; Traitement du fichier de log général
; ==================================================================
;
;
; Fichier qui peut être importé dans EXCEL avec séparateurs
à "|" et texte en mode "Windows ANSI"
; La date est au format "JJ/MM/AAAA"
; ATTENTION : on consultera toujours la copie de ce fichier qui est PublicLog.txt
; Si par hasard, le fichier
(.txt) n'existe plus, on le recrée
if exist ($LogPath + "Log.txt")
goto Exist_txt
else
if OPEN (1, "$LogPath + Log.txt", 2) = 0
close (1)
Endif
if RedirectOutput($LogPath + "Log.txt") = 0
? "Date|Heure|Utilisateur|Machine|Type
machine|OS|SP Version|Langue|Adr.IP|Adr.MAC|Serveur d'authentification|Accès
modem"
RedirectOutput("")
Endif
Endif
:Exist_txt
;Detection d'une connexion
modem ou réseau
$DIALUPREG=ReadValue("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RemoteAccess",
"REMOTE CONNECTION")
If $DIALUPREG = 01000000
$DIALUP = "Oui"
else
$DIALUP = "Non"
EndIf
$i=0
:WaitLog
; Si le fichier n'est pas accessible, on attend 3 boucles de 2 secondes
; Passé ce délai, on ne gère pas le fichier de log.
if RedirectOutput($LogPath + "Log.txt", 0) <> 0
$i=$i+1
if $i > 3
Goto PasDeLog
else
Sleep 2
goto WaitLog
EndIf
else
; Détection du type d'OS
$Svcpack="-"
Select
Case @inwin=1
$kernel="WinNT"
$Svcpack=ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion","CSDVersion")
$prodkey="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions"
$type=ReadValue("$prodkey","ProductType")
$Suite=ReadValue("$prodkey","ProductSuite")
IF
LEN($Suite)>0
$Suite=SUBSTR($Suite,1,INSTR($Suite,"|")-1)
Else
$Suite=""
EndIf
Select
Case
@dos=5.0
$system="Win2k"
Case
@dos=4.0
$system="WinNT"
EndSelect
Select
Case
$type="LANMANNT"
$DCRole=ReadValue("HKEY_LOCAL_MACHINE\Security\Policy\PolSrvRo","(No
Name)")
$flavor="$DCRole
"+"$Suite "+" Domain Controller"
Case
$type="ServerNT"
$flavor="$Suite
"+" Member Server"
Case
$type="WinNT"
$flavor="
Workstation"
EndSelect
;
Check du type de PC
$TypePC="-"
If
0=ExistKey("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Pcmcia")
$TypePCReg=ReadValue("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Pcmcia",
"Start")
If
$TypePCReg="4"
$TypePC="PC
de bureau"
EndIf
If
$TypePCReg="0"
$TypePC="Portable"
EndIf
EndIf
Case @inwin=2
$TypePC="-"
$kernel="Win9x"
$SPVER
= "-"
$SubVer=ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion","SubVersionNumber")
Select
Case
@dos="4.90"
$system="WinME"
$flavor="A"
Case
@dos="4.10"
$system="Win98"
Select
Case
$subver=" SE "
$flavor="SE"
Case
$subver=" A "
$flavor="A"
EndSelect
Case
@dos="4.0"
$system="Win95"
Select
Case
$subver=" C"
$flavor="OSR2.5"
Case
$subver=" B"
$flavor="OSR2"
Case
$subver="a"
$flavor="A"
EndSelect
EndSelect
;
Check du type de PC
If
0=ExistKey("HKEY_LOCAL_MACHINE\Enum\Pcmcia")
$TypePC="Portable"
else
$TypePC="PC
de bureau"
EndIf
EndSelect
$Langue = substr(@USERLANG, 5, LEN (@USERLANG))
; On écrit
tous les détails dans le fichier de log sur lequel on pointe
? "@MDAYNO/@MONTHNO/@YEAR|@TIME|@FULLNAME|@WKSTA|$TypePC|$System"
+ "$flavor|" + "$Svcpack|$Langue|@IPADDRESS0|@ADDRESS|@LSERVER|$DIALUP"
RedirectOutput("")
Endif
; Copie le fichier de log
dans un autre fichier. Seul ce second fichier doit être consulté
afin de ne
; pas bloquer le log de machines lors de la consultation.
COPY $LogPath+"Log.txt" $LogPath+"PublicLog.txt"
; Teste la taille du fichier
de Log et envoie un message aux personnes concernées (Service IC)
If INGROUP("Kxt_IC")
$Taille_Log = GetFileSize("$LogPath\Log.txt")
$Taille_Log = $Taille_Log / 1024
If $Taille_Log > $Taille_Max
$return = MESSAGEBOX("La taille actuelle
du fichier de Log (" + $Taille_Log + " KO) outrepasse la limite de
" + $Taille_Max + " KO imposée.","Information système",
48)
Endif
Endif
:PasDeLog
; ==================================================================
; FIN de la
gestion du fichier de log
; ==================================================================
;
;
;
; Suppression des fichiers temporaires créés dans le répertoire
temp de windows
; uniquement pour les machines 9x. Suppression aussi des .CHK
If @INWIN=2 ;Win9x
DEL "\Windows\Temp\*.tmp"
DEL "\Windows\Temp\*.wbk"
DEL "\Windows\Temp\~*.*"
DEL "\Windows\Temp\*.htm"
DEL "\*.chk"
EndIf
;
; ==================================================================
; Mise en place des lecteurs CORPORATE
; ==================================================================
;
; Accès aux softs officiels de la société, ainsi qu'aux
patchs et MAJ.
use s: "\\ntprincipal\softsSociete"
$PathAppli= "S:"
;Mise en place du lecteur
sur répertoire perso
use p: "\\ntprincipal\" + @USERID + "$"
if @ERROR<>0
use p: /delete
EndIf
;
; ==================================================================
; Test de la BDR pour virus
; ==================================================================
;
if 0 = ExistKey("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\LINUX32")
$return = MESSAGEBOX("Il semble rester une trace d'infection
par un virus." + $ICPhone,"Info système",64)
else
if 0 = ExistKey("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\reload")
$return = MESSAGEBOX("Il semble rester
une trace d'infection par un virus." + $ICPhone,"Info système",64)
EndIf
EndIf
;
; ==================================================================
; GESTION
DE MCAFEE
; ==================================================================
;
; Il faut KIXTART VERSION 3.61 ou supérieur.
;
; Test de l'appartenance au groupe pour savoir si on gère McAfee
IF (InGroup ("Kxt_NoMcAfee"))
GOTO "END_MC"
ENDIF
; Exclu tous les NT servers
de l'installation et de la mise à jour.
$NTServerPath ="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\"
$NTServerVal = READVALUE($NTServerPath + "ProductOptions","ProductType")
$IS_SERVER = INSTR($NTServerVal,
"ServerNT")
$IS_DOMAIN_CONTROLLER = INSTR($NTServerVal, "LanmanNT")
If (($IS_SERVER <>
0) OR ($IS_DOMAIN_CONTROLLER <> 0))
GOTO "END_MC"
EndIf
; Initialisation de variables...
$appsPath=$PathAppli + "\Applications\McAfee\"
$extraDATDir=($appsPath + "DatFiles\extra.dat")
$sDATpath=$appsPath + "\SuperDatFiles"
; Prend le nom du SuperDAT
$sDATString=DIR ($sDATpath + "\sdat*.exe")
; Recherche du numéro
de SuperDAT
$sDATVer=SUBSTR($sDATString,5,4)
; Détermine la version
de McAfee installée (si il y en a une...)
$VS403Code=ExistKey($regPath + "Network Associates\McAfee VirusScan")
$NS403aCode=ExistKey($regPath + "Network Associates\NetShield NT")
$VS45Code=ExistKey($regPath + "Network Associates\TVD\VirusScan")
; Redirection sur la bonne version de McAfee
Select
CASE $VS403Code=0
GOTO
"END_MC"
CASE $NS403aCode=0
GOTO
"END_MC"
CASE $VS45Code=0
GOTO
"VS45"
CASE 1
;
Dans le cas d'une connexion modem, on n'installe pas McAfee
If
$DIALUP = "Oui"
GOTO
"END_MC"
EndIf
;
On recherche si WIndows est en train de mettre à jour l'Installer...
;
Dans ce cas, la clef RunOnce n'est pas vide. On n'installe donc pas McAfee
if
0 = ExistKey("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce")
$szKeyID
= ReadValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce",
"")
if
@ERROR = 0
if
$szKeyID <> ""
GOTO
"END_MC"
Endif
Endif
Endif
if
@inwin=1 ; Kernel NT
If
$flavor=" Workstation" ;NT
Client
GOTO
"NetShieldClient"
else
GOTO
"NetShieldServeur"
EndIf
else
GOTO
"NetShieldClient"
Endif
EndSelect
:VS45
$VS45DATValue = READVALUE($RegPath + "Network Associates\TVD\Shared Components\VirusScan
Engine\4.0.xx","szDatVersion")
$VS45DATNum = SUBSTR($VS45DATValue,5,4)
$installDir=READVALUE($regPath + "Network Associates\TVD\Shared Components\VirusScan
Engine\4.0.xx","szInstallDir")
;On n'installe que le SuperDAT
!
;-------------------------------
If VAL($sDATVer) > VAL($VS45DATNum)
If @INWIN=2 ;Win9x
SLEEP 2
EndIf
$return = MESSAGEBOX("Le système va effectuer
une mise à jour de votre antivirus. Cliquez sur OK pour commencer."
+ $ICPhone, "SuperDAT update", 64, 10)
RUN ($sDATpath + "\" + $sDATString + " /silent
/prompt")
GOTO "END_MC"
Else
GOTO "END_MC"
EndIf
; Installe McAfee VirusScan
4.5 sur serveur
;-------------------------------------------
:NetShieldServeur
$return = MESSAGEBOX("Il semble que McAfee ne soit pas installé
sur cette machine ou que vous ayez une version trop ancienne. Cliquez sur OK
pour démarrer l'installation d'une version à jour ou Cancel pour
annuler." + $ICPhone,"VirusScan Install",1,5)
if $return = 1
RUN $appsPath + "WindowsServer\setup.exe"
GOTO "END_DEPLOY"
Endif
GOTO "END_MC"
; Installe McAfee VirusScan
4.5 sur client
;-----------------------------------------
:NetShieldClient
$return = MESSAGEBOX("Il semble que McAfee ne soit pas installé
sur cette machine ou que vous ayez une version trop ancienne. Cliquez sur OK
pour démarrer l'installation d'une version à jour ou Cancel pour
annuler." + $ICPhone,"VirusScan Install",1,5)
if $return = 1
RUN $appsPath + "WindowsClient\setup.exe"
GOTO "END_DEPLOY"
Endif
GOTO "END_DEPLOY"
:END_MC
; ==================================================================
; FIN
de la gestion de McAfee
; ==================================================================
; =
; =
; =
; ==================================================================
; GESTION DE TUN (Installation de Wall de la société
ESKER)
; ==================================================================
;
; Tout le déploiement de WALL est basé sur les .dpl se trouvant
dans
; "\TUN\ADeployer", et en particulier dans menu.dpl. Il ne faut donc
; pas oublier de modifier les chemins de ce fichier si le répertoire
; SoftSociete change...
;
; Le principe est d'utiliser le déployeur pour effectuer une MAJ
; automatique du WALL. A chaque démarrage du PC, le déployeur
regarde
; quelle est la version en place et met à jour si besoin.
;
; Test de l'appartenance au groupe pour savoir si on gère WALL
If (InGroup ("Kxt_NoWALL"))
GOTO "END_WALL"
EndIf
; Sont exclus les CPD et
CSD
If ($IS_DOMAIN_CONTROLLER <> 0)
GOTO "END_WALL"
EndIf
; Initialisation de variables...
;$appsPath=("\\ntprincipal\SoftsSociete\Applications\TUN\ADeployer\Client\")
$appSrcPath=($PathAppli +
"\Applications\TUN\ADeployer\")
$appsDeplPath=($PathAppli + "\Applications\TUN\Deployer_script\")
; Il faut copier les fichiers du déployeur ds le répertoire du
PC
If exist("@LANROOT\$ICRep\DEPLOY32.EXE")
; Le principe est de lancer le déployeur puis de laisser
faire...
RUN ("@LANROOT\$ICRep\deploy32.exe file:///$PathAppli/Applications/TUN/ADeployer/menu.dpl")
else
COPY "s:\Applications\TUN\Deployer_script\*.*" "@LANROOT\$ICRep"
; On doit enregistrer l'OCX dans le PC
RUN ("RegSVR32.EXE /s @LANROOT\$ICRep\DEPLOYER.OCX")
Endif
:END_WALL
; ==================================================================
; FIN
de la gestion de TUN
; ==================================================================
; =
; =
; =
; ==================================================================
; GESTION
DE ACROBAT READER
; ==================================================================
; Test de l'appartenance
au groupe pour savoir si on gère ACROBAT
If (InGroup ("Kxt_NoACRO"))
GOTO "END_ACRO"
EndIf
; Sont exclus les CPD et
CSD
If ($IS_DOMAIN_CONTROLLER <> 0)
GOTO "END_ACRO"
EndIf
; Initialisation de variables...
$appsPath=($PathAppli + "\Applications\AcrobatReader\")
; Sélectionne le fichier d'installation
$Appli=DIR ($appsPath + "\ar*.exe")
$Title="Installation d'Acrobat Reader"
$Nom_Appli="Acrobat Reader"
$szKeyID=""
$szPathApp=""
$pszOpt=0
$pszOption=""
$Appl_Inst=0
$i=0
if 0 = ExistKey("HKEY_CLASSES_ROOT\.pdf")
$szKeyID = ReadValue("HKEY_CLASSES_ROOT\.pdf", "")
;clef par défaut
if @ERROR = 0
$Appl_Inst=1
$szKeyID = $szKeyID + "\shell\open\command"
if 0 = ExistKey("HKEY_CLASSES_ROOT\"
+ $szKeyID)
$szPathApp = ReadValue("HKEY_CLASSES_ROOT\"
+ $szKeyID, "")
if @ERROR = 0
$Appl_Inst=1
$index=INSTR($szPathApp,"exe")
if $index<>0
$Appl_Inst=2
$index=$index+2
if
SubStr($szPathApp,1,1)=chr(34)
$lpszApp=SubStr($szPathApp,2,$Index-1)
else
$lpszApp=SubStr($szPathApp,1,$Index)
Endif
Endif
EndIf
EndIf
EndIf
EndIf
if $Appl_Inst=1
$return = MESSAGEBOX("Il semble qu'il y ait une mauvaise
installation/désinstallation d'" + $Nom_Appli + "." +
$ICPhone,$Title,48,10)
GOTO "END_ACRO"
EndIf
if $Appl_Inst=2
; Recherche de la version installée
$ver=GetFileVersion($lpszApp, "FileVersion")
; Recherche
le numéro de version
$sDATVer=SUBSTR($Appli,3,3)
; On supprime
tout caractère autre que des chiffres
$i=0
$LaVersion=""
:Boucle_ACR
$i=$i+1
if substr("$ver",$i,1) >= "0" AND substr("$ver",$i,1)
<= "9"
$LaVersion=$LaVersion + substr("$ver",$i,1)
Endif
If $i<len($ver)
GOTO "Boucle_ACR"
Endif
$LaVersion=substr("$LaVersion",1,3)
; Comparaison de la version installée avec la version
à installer
If VAL($sDATVer) > VAL($LaVersion)
$return = MESSAGEBOX("Il semble qu'il
y ait une version antérieure à V" + $sDATVer + " de
" + $Nom_Appli + ". Vous devriez désinstaller cette version
ainsi le système pourrait installer une version plus récente."
+ $ICPhone,$Title,64,10)
EndIf
GOTO "END_ACRO"
ELSE
; Lancement de l'installation
$return = MESSAGEBOX("Le système va installer
" + $Nom_Appli + " sur votre machine. Cliquez sur OK pour démarrer
l'installation ou Cancel pour annuler. " + $ICPhone,$Title,1)
If $return = 1
RUN $appsPath + $Appli
$return = MESSAGEBOX("Il est très
fortement conseillé, une fois l'installation terminée, de lancer
" + $Nom_Appli + " une première fois afin de valider son installation.
" + $ICPhone,$Title,64)
Endif
GOTO "END_DEPLOY"
EndIf
:END_ACRO
;
; ==================================================================
; FIN
de la gestion d'AcrobatReader
; ==================================================================
; =
; =
; =
; ==================================================================
; GESTION
DE WinZIP
; ==================================================================
;
; Test de l'appartenance au groupe pour savoir si on gère ACROBAT
If (InGroup ("Kxt_NoZIP"))
GOTO "END_ZIP"
EndIf
; Sont exclus les CPD et
CSD
If ($IS_DOMAIN_CONTROLLER <> 0)
GOTO "END_ZIP"
EndIf
; Initialisation de variables...
$appsPath=($PathAppli + "\Applications\WinZIP\")
; Sélectionne le fichier d'installation
$Appli=DIR ($appsPath + "\se*.exe")
$Appli_ver=DIR ($appsPath + "\se*.txt")
$Title="Installation de WinZIP"
$Nom_Appli="WinZIP"
$szKeyID=""
$szPathApp=""
$pszOpt=0
$pszOption=""
$Appl_Inst=0
$i=0
if 0 = ExistKey("HKEY_CLASSES_ROOT\.zip")
$szKeyID = ReadValue("HKEY_CLASSES_ROOT\.zip", "")
;clef par défaut
if @ERROR = 0
$Appl_Inst=1
$szKeyID = $szKeyID + "\shell\open\command"
if 0 = ExistKey("HKEY_CLASSES_ROOT\"
+ $szKeyID)
$szPathApp = ReadValue("HKEY_CLASSES_ROOT\"
+ $szKeyID, "")
if @ERROR = 0
$Appl_Inst=1
$index=INSTR($szPathApp,"exe")
if $index<>0
$Appl_Inst=2
$index=$index+2
if
SubStr($szPathApp,1,1)=chr(34)
$lpszApp=SubStr($szPathApp,2,$Index-1)
else
$lpszApp=SubStr($szPathApp,1,$Index)
Endif
Endif
EndIf
EndIf
EndIf
EndIf
if $Appl_Inst=1
$return = MESSAGEBOX("Il semble qu'il y ait une mauvaise
installation/désinstallation de " + $Nom_Appli + "." +
$ICPhone,$Title,48,10)
GOTO "END_ZIP"
EndIf
if $Appl_Inst=2
; Recherche de la version installée
$ver=GetFileVersion($lpszApp, "ProductVersion")
; Recherche
le numéro de version
$sDATVer=SUBSTR($Appli_ver,3,2)
; On supprime
tout caractère autre que des chiffres
$i=0
$LaVersion=""
:Boucle_ZIP
$i=$i+1
if substr("$ver",$i,1) >= "0" AND substr("$ver",$i,1)
<= "9"
$LaVersion=$LaVersion + substr("$ver",$i,1)
endif
If $i<len($ver)
GOTO "Boucle_ZIP"
Endif
$LaVersion=substr("$LaVersion",1,3)
; Comparaison de la version installée avec la version
à installer
If VAL($sDATVer) > VAL($LaVersion)
$return = MESSAGEBOX("Il semble qu'il
y ait une version antérieure à V" + $sDATVer + " de
" + $Nom_Appli + ". Vous devriez désinstaller cette version
ainsi le système pourrait installer une version plus récente."
+ $ICPhone,$Title,64,10)
EndIf
GOTO "END_ZIP"
Else
; Lancement de l'installation
$return = MESSAGEBOX("Le système va installer
" + $Nom_Appli + " sur votre machine. Cliquez sur OK pour démarrer
l'installation ou Cancel pour annuler. " + $ICPhone,$Title,1)
if $return = 1
RUN $appsPath + $Appli
GOTO "END_DEPLOY"
Endif
GOTO "END_ZIP"
EndIf
:END_ZIP
;
; ==================================================================
; FIN
de la gestion de WinZIP
; ==================================================================
; =
; =
; =
; ==================================================================
;
; ==================================================================
:END_DEPLOY
;
;------------
;Groupe "IC"
;------------
If INGROUP("Kxt_IC")
Gosub NoMaintainServerList9x
Gosub NoMaintainServerListNT
settime "\\ntprincipal"
endif
;-------------
;Groupe "PROD"
;-------------
If INGROUP("Kxt_PROD")
Gosub NoMaintainServerList9x
; Gosub NoMaintainServerListNT
settime "\\ntprincipal"
endif
;------------
;Groupe "DOC"
;------------
If INGROUP("Kxt_DOC")
Gosub NoMaintainServerList9x
Gosub NoMaintainServerListNT
settime "\\ntprincipal"
use N: "\\ntprincipal\Documentation"
use V: "\\ntprincipal\vss"
use W: "\\ntprincipal\Vss2"
endif
; ------------------
; Groupe "PACKAGING"
; ------------------
If INGROUP("Kxt_PACK")
Gosub NoMaintainServerList9x
Gosub NoMaintainServerListNT
settime "\\ntprincipal"
use v: "\\ntprincipal\vss"
use o: "\\ntprincipal\devl"
endif
; ----------------
; Groupe "SUPPORT"
; ----------------
If INGROUP("Kxt_SUPPORT")
Gosub NoMaintainServerList9x
Gosub NoMaintainServerListNT
settime "\\ntprincipal"
use v: "\\ntprincipal\SupportFr"
use w: "\\ntprincipal\SalesFr"
endif
; ----------------
; Groupe "QUALITE"
; ----------------
If INGROUP("Kxt_QUALITE")
Gosub NoMaintainServerList9x
Gosub NoMaintainServerListNT
use Q: "\\Lotus\testwork"
endif
; ------------
; Groupe "ITS"
; ------------
If INGROUP("Kxt_ITS")
Gosub NoMaintainServerList9x
; Gosub NoMaintainServerListNT
use v: "\\its-nt\its"
use w: "\\its-nt\produit"
use X: "\\ntprincipal\Its"
endif
; ------------
; Groupe "DEV"
; ------------
If INGROUP("Kxt_DEV")
Gosub NoMaintainServerList9x
; Gosub NoMaintainServerListNT
use o: "\\ntprincipal\devl"
use v: "\\ntprincipal\vss"
use w: "\\ntprincipal\Vss2"
endif
; --------------
; Groupe "SALES"
; --------------
If INGROUP("Kxt_SALES")
Gosub NoMaintainServerList9x
Gosub NoMaintainServerListNT
settime "\\ntprincipal"
use w: "\\ntprincipal\SalesFr"
endif
; -----------
; Groupe "RH"
; -----------
If INGROUP("Kxt_RH")
Gosub NoMaintainServerList9x
Gosub NoMaintainServerListNT
settime "\\ntprincipal"
use V: "\\ntprincipal\partage_ADV"
use w: "\\ntprincipal\partage_compta"
endif
; ------------
; Groupe "ADV"
; ------------
If INGROUP("Kxt_ADV")
Gosub NoMaintainServerList9x
Gosub NoMaintainServerListNT
settime "\\ntprincipal"
use v: "\\ntprincipal\achat"
use W: "\\ntprincipal\partage_ADV"
endif
; ---------------
; Groupe "COMPTA"
; ---------------
If INGROUP("Kxt_COMPTA")
Gosub NoMaintainServerList9x
Gosub NoMaintainServerListNT
settime "\\ntprincipal"
use V: "\\ntprincipal\partage_ADV"
use W: "\\ntprincipal\partage_compta"
endif
; -------------
; Groupe "MKTG"
; -------------
If INGROUP("Kxt_MKTG")
Gosub NoMaintainServerList9x
Gosub NoMaintainServerListNT
settime "\\ntprincipal"
use v: "\\mktg\Incoming"
use w: "\\mktg\Marketing"
use X: "\\ntprincipal\MKTG Europe"
endif
; ---------------------------
; Appel du script utilisateur
; ---------------------------
$NomUser=@LDRIVE+"\"+@USERID+".bat"
If EXIST("$NomUser")
Call "$NomUser"
EndIf
EXIT 1
; ------------------------------------------------------------------------------
; Suppression des machines 9x de la liste des explorateurs potentiels de domaine
; ------------------------------------------------------------------------------
;
; Il faut que la valeur (Défaut) soit à 0.
; La modification ne prendra effet que lors du ReBoot de la machine 9x.
;
:NoMaintainServerList9x
IF @INWIN=2 ;Win9x
$KeyID="HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP\Ndi\Params\MaintainServerList"
$szKeyID=""
If 0 = ExistKey($KeyID)
$szKeyID = ReadValue($KeyID, "")
;clef par défaut
if @ERROR = 0 AND $szKeyID <> "0"
WriteValue($KeyID, ""
,"0" ,"REG_SZ")
EndIf
EndIf
EndIf
Return
; ------------------------------------------------------------------------------
; Suppression des machines NT de la liste des explorateurs potentiels de domaine
; ------------------------------------------------------------------------------
;
; Il faut que la valeur MaintainServerList soit à "No".
; La modification ne prendra effet que lors du ReBoot de la machine NT.
;
:NoMaintainServerListNT
If @INWIN<>2 ;WinNT
; Sont exclus les CPD et CSD
If ($IS_DOMAIN_CONTROLLER <> 0)
Return
EndIf
$KeyID="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters
$szKeyID=""
If 0 = ExistKey($KeyID)
$szKeyID = ReadValue($KeyID, "MaintainServerList")
;clef par défaut
If @ERROR = 0 AND $szKeyID <> "No"
WriteValue($KeyID, ""
,"No" ,"REG_SZ")
EndIf
EndIf
EndIf
Return
;
; Fin du fichier de script
; ----------------------
Début de page | Page d'accueil | Me contacter
(C) Laurent - autourdupc.com - |
Création le 12 novembre 2000.
Mise à jour le 25 juin 2002.
|
visites |