[VBS][SOURCE] Optimisation du Path

Optimisation du Path [VBS][SOURCE] - VB/VBA/VBS - Programmation

Marsh Posté le 28-11-2005 à 16:25:35    

Sur les serveur Windows 2003 la Variable Path connait certaines limitations. Entre autres, certains chemins doivent impérativement se trouver au Début de la variable (a priori dans les 1024 premiers caractères) sous peine de quoi les services qui s'y attachent ne pourront pas démarrer.
Je recontre souvent ce problème avec les serveurs Citrix : certaines applis positionnent leur entées PATH au début de la variable et non à la fin. Au boot suivant les services Citrix ne montent plus.
 
J'ai donc créé ce petit script VBS qui permet de remettre le PATH à l'équerre : les entrées Majeures sont foncées en début de chemin puis on y ajoute le reste en supprimant les doublons.
 
C'est mon premier script VBS  :ange: , donc toute critique constructive est la bienvenue  ;)  
 

Set shell = WScript.CreateObject( "WScript.Shell" )
Set O_EnvVarSyst = shell.Environment("System" )
Set O_EnvVarProc = shell.Environment("Process" )
Set O_Compare = New RegExp
 
Str_SystemRoot = O_EnvVarSyst("WinDir" )
     'On extraie la variable %PATH%
Str_Path = O_EnvVarSyst("Path" )                                                                        
     'On remplace la valeur de %SYSTEMROOT% par le nom de cette même variable
Str_Path = Replace(Str_Path, O_EnvVarProc("SystemRoot" ), "%SystemRoot%",1,-1,1)  
     'On vire les \ inutiles
Str_Path = Replace(Str_Path, "\;", ";" )                                            
     'Le plus important, on positionne les premières entrées à la main                
Str_NewPath = "%SystemRoot%;%SystemRoot%\SYSTEM32"                                    
T_ActualPath = split(Str_Path,";" )
Lng_Nombre = (UBound(T_ActualPath))
for i=0 to Lng_Nombre
  Lng_Find = Instr(1,UCase(Str_NewPath),UCase(T_ActualPath(i)) & ";" )
  If Lng_Find = 0 Then
    Str_NewPath = Str_NewPath & ";" & T_ActualPath(i)
  End If
next
Str_NewPath = Replace(Str_NewPath, O_EnvVarProc("SystemRoot" ), "%SystemRoot%",1,-1,1)
O_EnvVarSyst("Path" )=Str_NewPath


 
Edit : Quelques commentaires


Message édité par madmartigan le 28-11-2005 à 16:30:32

---------------
Mieux vaut fermer sa gueule et passer pour un con, plutot que de l'ouvrir, et montrer qu'on l'est...
Reply

Marsh Posté le 28-11-2005 à 16:25:35   

Reply

Marsh Posté le 28-11-2005 à 17:00:53    

:hello:  
Bienvenue dans le club des pogrammeurs de VBS, et merci pour ce script intéressant.
 :jap:

Reply

Marsh Posté le 29-11-2005 à 10:55:03    

olivthill a écrit :

:hello:  
Bienvenue dans le club des pogrammeurs de VBS, et merci pour ce script intéressant.
 :jap:


 
Merci beaucoup pour cet accueil.  :hello:  
Je n'ai pas la prétention de me dire "programmeur"  :sol: , "scripteur" :sarcastic:  que conviendrait mieux mais ça me fait bien plaisir.
J'invite bien sur tout le monde à poster ses petits scripts, avec un peu de commentaires pour que les débutants comme moi puissent les lire et s'en inspirer pour apprendre à scripter mieux.
 
 ;)


---------------
Mieux vaut fermer sa gueule et passer pour un con, plutot que de l'ouvrir, et montrer qu'on l'est...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed