Bonjour,
Il y a un moment de cela je me suis penché sur la problématique de mise à jour automatique de frontaux. J’ai trouvé un certain nombre de chose avec google à ce propos.
L’impossibilité notoire est que le frontal ne peut être mis à jour s’il est lancé.
Il existe des logiciels relativement onéreux ou des solutions avec des tas de fichiers et une logique de fonctionnement très relative.
J’ai un peu de temps en ce moment, peut être la crise, alors je me suis penché de nouveau sur le problème.
Toutes les solutions proposées font une comparaison entre le frontal et la base centrale avec une information stockée dans une table avec un numéro de version.
J’ai refait un bilan des choses nécessaires :
L’information « nouvelle version » doit être comparée entre 2 frontaux
Ce qui importe n’est pas le numéro de version mais la date de celle-ci
La mise à jour doit-être automatisée en dehors du frontal
J’ai donc choisi la solution du script VBS, lancé au « logon ».
Il faut un point de distribution
Une table version avec 2 champs, un pour la version et l’autre pour la date et le script
On modifie le login script du serveur
Dans le script on positionne le point de distribution avec le nom du frontal et le point d’arrivée.
Ce script a été testé in situ et cela fonctionne sans souci dans un environnement Windows 2003.
Je propose à ceux qui le désirent de faire des propositions d’amélioration afin de solutionner cette problématique.
1 Dans le répertoire NETLOGON du serveur le fichier script de login ex : "LOGIN_SCRIPT.bat" on ajoute la ligne
le script vbs très simple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 \\monserveur\NETLOGON\MaJFrontal.vbs
Voila that's all
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 dim lasource 'Frontal en cours d'utilisation dim FrtMaj 'Frontal supposé MàJ dim ladateorigine 'Date Frontal en cours dim ladateMaj 'Date Frontal supposé MàJ 'Emplacements physiques FrtMaj = "G:\Distribution\Maj\LeFrontal.accdr" 'Frontal supposé MàJ lasource = "C:\ExploitFrontal\LeFrontal.accdr" 'Frontal en cours d'utilisation if FichierExiste(FrtMaj) = true and FichierExiste(lasource ) = true then ladateorigine = donneladate(lasource) ladateMaj = donneladate(FrtMaj) if ladateMaj > ladateorigine then copieFrontal end if else wscript.echo "Il y a un pépin avec les emplacements ou les noms de fichier" end if function donneladate(kelbase) 'Connexion à une base et interrogation Set conn = CreateObject("ADODB.Connection") strConnect = "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & kelbase & ";Persist Security Info=False;" conn.Open strConnect LeSQL = "SELECT Version.ladate FROM Version" Set rs = conn.Execute(LeSQL) rs.movefirst donneladate=rs(0) conn.close Set conn = Nothing end function Function copieFrontal 'Copie du Frontal Set fso = CreateObject("Scripting.FileSystemObject") fso.CopyFile FrtMaj , lasource Set fso = Nothing end function Function FichierExiste(leFichier) Dim filesys Set filesys = CreateObject("Scripting.FileSystemObject") If filesys.FileExists(leFichier) Then FichierExiste = True End If End Function
Partager