bonjour, est-ce possible en vbs d'exporter toute le base de registre de windows ?
bonjour, est-ce possible en vbs d'exporter toute le base de registre de windows ?
Qu'est ce que tu veux faire ?
Parce qu'exporter toute la BDR de windows cela ne sert à rien, et elle est très volumineuse.
Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.
en fait je veut faire deux sauvegardes pour les comparer et voir les clés qui on été modifier
Est ce un programme qui modifie les clés ?
parce que le mieux est de ciblés les clés que tu veux comparer.
Comparer toutes les clés d'un PC avec celui d'un autre ou même le tiens (cas de comparaison entre une veille BDR et la récente en cours d'utilisation) c'est très long, très lourd et cela n'a aucun intérêt, car il y a plein de clé qui change de valeurs et pour des raisons tout à fait justifié.
En plus le résultat serait tellement voluminuex et foullis que son interprétation serait infaisable.
Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.
je voudrai quand même essayer, il y a bien des logiciels qui font ca
Des fois je cherche quel clé est modifier quand je modifi un paramétre d'un application, comme ca je fait un fichier .reg pour paramétrer la plu par de mes application par le registre, cela est trsé pratique parce que je réionstalle souvent windows.
Lorsque je veut chercher quel clé est modifier lorsque je modifi tel partamétre, j'utilise un logiciel avec le quel on fait un premier scan le la BDR, pui on modifi le paramétrer dans l'application, puis on fait le deuxième scan, puis on compare les deux scan.
Je voudrai créer un script pour faire cela, voila
Salut,
encore une fois les bonnes vieilles commandes Dos nous simplifient les choses :
Bon courage pour éplucher les infos
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Set objShell = CreateObject("Wscript.Shell") objShell.Run "Cmd /c regedit /e c:\registre.reg"
A++
Plus tu pédales moins vite, moins t'avances plus vite.
je connaissez la commande reg mais pas regedit
reg ne permet pas une sauvegarde complette
Regedit je l'utilise tous les jours pour fouilelr les clés de registre et je n'avais pas pensé qu'elle pouvait offrir ce genre de fonctionnalité.
Edit :
Je viens de tester la commande -> mega rapide.
Impressionnant.
Mais un fichier > 50 mo en résultat à comparer
Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.
c'est peut être pour cale que mon script ne fonctionne pas:
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63 set WshShell = WScript.CreateObject("WScript.Shell") Set objShell = CreateObject("Wscript.Shell") Set objFSO = CreateObject("Scripting.FileSystemObject") DesktopPath = WSHShell.SpecialFolders("Desktop") objShell.Run "Cmd /c regedit /e """ & DesktopPath & "\reg1.reg""" Wscript.echo "On marque une pause le temps de sauvegarder la base de registre" & vbCrLf _ & "Appuyez sur OK quand la fenêtre dos sera fermer" Wscript.echo "On marque une pause le temps de modifier les paramétres manuellement dans votre application" & vbCrLf _ & "Appuyez sur OK quand vous aurez fini" objShell.Run "Cmd /c regedit /e """ & DesktopPath & "\reg2.reg""" Wscript.echo "On marque une pause le temps de sauvegarder la base de registre" & vbCrLf _ & "Appuyez sur OK quand la fenêtre dos sera fermer" Set objSourceFile = objFSO.OpenTextFile(DesktopPath & "\reg1.reg", 1) ' Fichier originale Set objSourceFile2 = objFSO.OpenTextFile(DesktopPath & "\reg2.reg", 1) 'Fichier copié vrNumLigne = 0 Do Until objSourceFile.AtEndOfStream Or objSourceFile2.AtEndOfStream vrNumLigne = vrNumLigne + 1 vrLigne = objSourceFile.ReadLine vrLigne2 = objSourceFile2.ReadLine vrComprLign = StrComp(vrLigne, vrLigne2, 1) If vrComprLign = 1 Or vrComprLign = -1 Or IsNull(vrComprLign) then vrNul = "Le fichier a été modifier" vrLignDif = vrLignDif & vrNumLigne & ": " & vrLigne & vbCrLf & vrNumLigne & ": " & vrLigne2 & vbCrLf & vbCrLf 'vrLignDif2 = vrLignDif2 & "Origin " & vrNumLigne & ": " & vrLigne & vbCrLf & "Modif " & vrNumLigne & ": " & vrLigne2 & vbCrLf & vbCrLf Else End If Loop objSourceFile.Close objSourceFile2.Close If IsEmpty(vrNul) Then Wscript.Echo "La base de registre n'a subi aucune modification" Else Wscript.Echo vrLignDif Const ForReading = 1, ForWriting = 2 Set FichierTXT = WScript.CreateObject("WScript.Shell") Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile(DesktopPath & "\Résulta de la comparaison de la base de registre", ForWriting,true) f.writeline("Fichier source: " & vrFchSlctn) f.writeline("") f.writeline("") f.writeline(vrLignDif) f.close End If
Peut être moi il contient plus de 500 000 ligne, je n'ai jamais essayé de comparer autant de ligne dans un fichier
je teste ton script.
Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.
j'ai une pop up d'erreur 260000 quelque chose pendant la comparaison des fichiers.
Trop gros à mon avis.
Edit :
Regarde cette exemple : lance tes commandes dos en process comme j'ai fait et tu peux utiliser la méthode waitfoexit qui attend le fin de l'execution du process avant de continue le script.
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 Set objWMIService = GetObject("winmgmts:\\.\root\cimv2:Win32_Process") objWMIService.Create "C:\temp\TDLinkerToToolsTests.exe test TTWorkbench\vdrg " & path, "c:\temp", null, ee waitforexit ee function waitforexit(ee) Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process Where ProcessID = '" & ee & "'") if not IsNull(colProcesses) then If colProcesses.Count <> 0 Then XTools.Sleep(1000) ' à remplacer par la fonction sleep de vbs waitforexit ee End If end if end function
Attention : XTools.Sleep(1000) ' à remplacer par la fonction sleep de vbs
Et oui j'ai utiliser une librairie d'un soft qui utilise ce script, donc faut retrouver comment faire un sleep en vbs, j'ai oublié comment mais je sais que j'ai écrit comment faire sur des vieux poste du forum.
Une recher avec sleep et le tour et jouer.
Le sleep est obligatoire autrement tu consommes toutes les ressources de ta machine (et je ne suis même pas sur que tu termine le script un jour) !!!!
Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.
moi pas d'erreur mais rien et afficher
mais j'ai remarquer que le processus wscript toure la comparaison n'est peut être pas encore terminée
Moi il me génére un popup erreur sans description de celle-ci et se termine.
Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.
Tu peux toujours découper la base en plusieurs fichier reg, et faire la comparaison sur ces fichiers.
Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager