Script Réseau en VBscript et démarrage de Windows

Script Réseau en VBscript et démarrage de Windows - VB/VBA/VBS - Programmation

Marsh Posté le 15-06-2006 à 21:13:27    

Besoin d'aide sur du VBscript a interfacer avec un Serveur nas et un Windows.  
---------------------------------------------------------------------------  
Voilà mon problème :  
   
J'ai créé un VBscript qui me permet de mapper les drives d'un Serveur Nas  
ce script dé-map les drives du Serveur puis les re-map, comme cela ça permet de mapper de façon sûr.  
   
J'avais l'intention de mettre ce script dans le démarrage de XP mais voilà le problème, cela fonctionne une fois tous les X, car il arrive souvent que le réseau ne soit pas encore actif là ou XP exécute le script ; alors dans ce cas rien ne se fait  
   
   
Comment pourait on faire démarrer ce script au démarrage d'un Windows, tout en connaissant si le réseau est actif pour le faire et de patienter si ce dernier n'est pas actif avant de lancer le script ?  
   
Je suis preneur de toutes solutions, même en VBScript en complément de mon prg pour tester si le LAn et actif ou non avant de lancer mon script.  
   
 
J'ai essayé le sleep + n secondes mais cela reste un peu aléatoire, je suis plus partant pour une solution du style "Tant que réseau inactif alors attendre", il doit bien y avoir une api windows par défaut pour cela ou autre chose....
 
 
PLEASE HELP...... je suis avide de connaissance la dessus, j'aime apprendre et c'est un point qui me tient à coeur...
 
 
Merci à tous :)
 
 
Voici ci dessous le contenu de mon fichier.vbs  
   
' / Serveur Nas connection share ressources /  
   
' declarations  
option explicit  
   
Dim objnetwork, objfile, objfolder, objfso, objshell, checkdrive  
Dim intdrive, alreadyconnected, intbcl  
Dim strdrv, strmap, strmapS, struser, strpwd  
   
   
' initialisation for network  
set objfso = createobject("Scripting.filesystemobject" )  
set objnetwork = createobject("wscript.network" )  
   
' initialisation for shell command  
set objshell= createobject("wscript.shell" )  
set checkdrive =objnetwork.enumnetworkdrives()  
   
' Pass on error to next full command  
On error resume next  
   
' Delete all mapped drive linked or not  
for intbcl = 1 to 8  
 select case intbcl  
  Case 1  
   strdrv = "L:"  
   strmap ="\\Diskstation\Html"  
   strmapS ="\\Diskstation\Html$"  
  Case 2  
   strdrv = "M:"  
   strmap ="\\Diskstation\Workhome"  
   strmapS ="\\Diskstation\Workhome$"  
  Case 3  
   strdrv = "N:"  
   strmap ="\\Diskstation\Private"  
   strmapS ="\\Diskstation\Private$"  
  case 4  
   strdrv = "O:"  
   strmap ="\\Diskstation\Temp"  
   strmapS ="\\Diskstation\Temp$"  
  case 5  
   strdrv = "P:"  
   strmap ="\\Diskstation\Common"  
   strmapS ="\\Diskstation\Common$"  
  case 6  
   strdrv = "Q:"  
   strmap ="\\Diskstation\Exchange"  
   strmapS ="\\Diskstation\Exchange$"  
  Case 7  
   strdrv = "R:"  
   strmap ="\\Diskstation\Advance"  
   strmapS ="\\Diskstation\Advance$"  
  Case 8  
   strdrv = "S:"  
   strmap ="\\Diskstation\Public"  
   strmapS ="\\Diskstation\Public$"  
 end select  
   
 if objfso.DriveExists(strdrv) then  
  objnetwork.removenetworkdrive strdrv, True, True  
  'objshell.popup "Map drive " & strmap & " - " & strdrv & " disconnected successfully"  
 end if  
   
next  
   
   
' Connect all mapped drive  
for intbcl = 1 to 8  
 ' init var to false  
 alreadyconnected = False  
 select case intbcl  
  Case 1  
   strdrv = "L:"  
   strmap ="\\Diskstation\Html"  
   strmapS ="\\Diskstation\Html$"  
   struser = "myuser"  
   strpwd = "synology"  
  Case 2  
   strdrv = "M:"  
   strmap ="\\Diskstation\Workhome"  
   strmapS ="\\Diskstation\Workhome$"  
   struser = "myuser"  
   strpwd = "synology"  
  Case 3  
   strdrv = "N:"  
   strmap ="\\Diskstation\Private"  
   strmapS ="\\Diskstation\Private$"  
   struser = "myuser"  
   strpwd = "synology"  
  case 4  
   strdrv = "O:"  
   strmap ="\\Diskstation\Temp"  
   strmapS ="\\Diskstation\Temp$"  
   struser = "myuser"  
   strpwd = "synology"  
  case 5  
   strdrv = "P:"  
   strmap ="\\Diskstation\Common"  
   strmapS ="\\Diskstation\Common$"  
   struser = "myuser"  
   strpwd = "synology"  
  case 6  
   strdrv = "Q:"  
   strmap ="\\Diskstation\Exchange"  
   strmapS ="\\Diskstation\Exchange$"  
   struser = "myuser"  
   strpwd = "synology"  
  Case 7  
   strdrv = "R:"  
   strmap ="\\Diskstation\Advance"  
   strmapS ="\\Diskstation\Advance$"  
   struser = "myuser"  
   strpwd = "synology"  
  Case 8  
   strdrv = "S:"  
   strmap ="\\Diskstation\Public"  
   strmapS ="\\Diskstation\Public$"  
   struser = "myuser"  
   strpwd = "synology"  
 end select  
   
   
 if objfso.folderexists(strmapS) then  
  objnetwork.mapnetworkdrive strdrv, strmapS, False, struser, strpwd  
  alreadyconnected = True  
 elseif objfso.folderexists(strmap) then  
  objnetwork.mapnetworkdrive strdrv, strmap, False, struser, strpwd  
  alreadyconnected = True  
 end if  
   
 ' confirm failed connection  
 if alreadyconnected = False then  
  objshell.popup "Map nas drive " & strmap & " - " & strdrv & " failed to reconnect"  
 end if  
   
next  
   
' end of script  
Wscript.quit  
   
   
Merci à tous  
Steely


---------------
Steely
Reply

Marsh Posté le 15-06-2006 à 21:13:27   

Reply

Marsh Posté le 21-06-2006 à 11:47:35    

bonjour,
 
tu as un paramètre de GPO qui te permet d'attendre la montée des lecteurs réseaux avant de lancer les scripts de logon, c'est plus simple :
 
Computer Configuration\Administrative
Templates\System\Logon\Always wait for the network at
computer startup and logon

Reply

Marsh Posté le 24-06-2006 à 00:16:31    

pilosite a écrit :

bonjour,
 
tu as un paramètre de GPO qui te permet d'attendre la montée des lecteurs réseaux avant de lancer les scripts de logon, c'est plus simple :
 
Computer Configuration\Administrative
Templates\System\Logon\Always wait for the network at
computer startup and logon


 
 
Je viens juste de rentrer d'Alsace, pour ma mutation ; donc sorry si je n'ai pu répondre avant
 
Peux tu m'en dire plus sur le GPO car je ne connais pas cela et comment implémenter cela avec mon VBscript ?
 
MErci bcp  
Slts
Steely


---------------
Steely
Reply

Sujets relatifs:

Leave a Replay

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