Besoin d'aide en VBS... URGENT

Besoin d'aide en VBS... URGENT - Shell/Batch - Programmation

Marsh Posté le 04-03-2004 à 09:58:10    

Voilà, si quelqu'un s'y connait, j'ai besoin d'aide, et je dois faire ça avant ce midi si possible
 
Comment écrire ce qui suit en VBS?
 
Si la clé BDR "Flagkey" n'existe pas
  alors flagkey=0
fin si
si flagkey=0
alors si OS=WinXp alors importer AppXP.reg
sinon, si OS=Win9x alors importer App9x.reg
fin si
fin si
écrire "nom_machine mise à jour" dans \\serveur\logmaj.txt
fin si
 
 
Si vous pouvez me dépaner là dessus, c'est super!
Merci

Reply

Marsh Posté le 04-03-2004 à 09:58:10   

Reply

Marsh Posté le 04-03-2004 à 10:27:01    

Reply

Marsh Posté le 04-03-2004 à 10:33:56    

Merci, mais apparemment, ca ne colle pas tout à fait!

Reply

Marsh Posté le 04-03-2004 à 12:00:41    

Bon essaie ce truc (pas testé) en modifiant où il faut:
 

Citation :

Option Explicit
 
Dim WshShell, WshFS, WshNet, val, flagkey, isXP, is9x
Dim computername, logfile, logfilename
 
Set WshShell = CreateObject("Wscript.Shell" )
Set WshFS = CreateObject("Scripting.FileSystemObject" )
Set WshNet = CreateObject("WScript.Network" )
 
computername = WshNet.computername
logfilename="\\serveur\logmaj.txt"
 
 
On Error Resume Next 'trap d'erreur
 
'Détection de l'os
val = WshShell.RegRead("HKLM/Software/Microsoft/Windows/currentversion/productName" ) '9x
val = WshShell.RegRead("HKLM/Software/Microsoft/Windows NT/currentversion/productName" ) 'xp
 
is9x = (val="Microsoft Windows 95" or val="Microsoft Windows 98" or val="Microsoft Windows ME" )
isXP = (val="Microsoft Windows XP" )
 
val = WshShell.RegRead("<chemin vers la clé>" )
If val="" Then flagkey=0
 
On Error Goto 0 'fin du trap d'erreur
 
If flagkey=0 Then
 If isXP Then WshShell.Run "regedit /s appxp.reg",2,True
 ElseIf is9x Then WshShell.Run "regedit /s app9x.reg",2,True
 
Set logfile = WshFS.opentextfile(logfilename,8) '2: écrase, 8:ajout
LogFile.WriteLine computername&" mise à jour"
logfile.close
Set logfile = nothing
 
End If
 
 
'cleanup
Set WshShell = nothing
Set WshFS = nothing
Set WshNet = nothing


 

Reply

Marsh Posté le 04-03-2004 à 20:00:32    

Ok, merci pour tout!
En fait, je suis en train de bidouiller avec ce que je peux choper à droite à gauche sur le net comme info!
Dès que ça marche, je poste le programme :)

Reply

Marsh Posté le 04-03-2004 à 20:06:49    

Normalement le script fait ton algo...

Reply

Marsh Posté le 04-03-2004 à 20:08:38    

>kfman
 
tu as écrit:
If isXP Then WshShell.Run "regedit /s appxp.reg",2,True  
ElseIf is9x Then WshShell.Run "regedit /s app9x.reg",2,True  
 
A quoi sert le ,2,True ???
 
 

Reply

Marsh Posté le 04-03-2004 à 20:56:09    

2: fenêtre minimisée.
True: attente de fin d'exécution.


Message édité par kfman le 04-03-2004 à 22:38:33
Reply

Marsh Posté le 06-03-2004 à 19:39:54    

VOilà, c'est fini!
J'ai fait quelques modif, mais dans l'e,semble, ton truc était excellent!
 
Dim WshShell, WshFS, WshNet, val, flagkey, isXP, is9x  
Dim computername, logfile, logfilename  
 
Set WshShell = CreateObject("Wscript.Shell" )  
Set WshFS = CreateObject("Scripting.FileSystemObject" )  
Set WshNet = CreateObject("WScript.Network" )  
 
computername = WshNet.computername  
logfilename="\\serveur\PATH\logmaj.txt"  
 
On Error Resume Next
 
val = WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ProductName" )
val = WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName" )
 
is9x = (val="Microsoft Windows 95" or val="Microsoft Windows 98" )  
isXP = (val="Microsoft Windows XP" )  
flagkey = ""
flagkey = WshShell.RegRead("HKLM\SOFTWARE\Maj\Flag" )  
 
On Error Goto 0
 
If flagkey="" Then
   If isXP Then
      WshShell.Run "regedit /s \\serveur\PATH\modifxp.reg",2,True
   Else If is9x Then
           WshShell.Run "regedit /s \\serveur\PATH\modif9x.reg",2,True
   End If
End If
Set logfile = WshFS.opentextfile(logfilename,8)  
logFile.WriteLine computername&": mis à jour le " & Date & " à " & Time
logfile.close  
Set logfile = nothing
 
WshShell.RegWrite "HKLM\SOFTWARE\Maj\Flag", 1
 
End If  
 
Set WshShell = nothing  
Set WshFS = nothing  
Set WshNet = nothing
 
 
Merci!

Reply

Sujets relatifs:

Leave a Replay

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