martinstein
Goto Top

Registry vergleichen (alt-neu), neue Schlüssel in txt-Datei schreiben

Hallo Leute,

ich stehe wieder einmal vor einem Batch-Problem, die Überschrift sagt eigentlich schon (fast) alles:

Ich benötige ein Batch, dass unter WinXP den Registry-Zweig HKLM\Software\Classes\CLSID vor und nach einer Aktion vergleicht und neu eingetragene Schlüssel in eine txt-Datei schreibt.

Ich habe zwar ein lauffähiges Batch zusammengeschrieben, aber dessen Ausführung braucht mit über drei Minuten doch sehr lange:

[vor der Aktion]
reg copy HKLM\Software\Classes\CLSID HKLM\Software\Classes\Backup /s /f
[nach der Aktion]
reg compare HKLM\Software\Classes\CLSID HKLM\Software\Classes\Backup /s /od >Unterschiede.txt
reg delete HKLM\Software\Classes\Backup /f

Wie gesagt: Läuft, braucht aber ewig und zeigt nebenbei nicht nur neue Schlüssel, sondern auch neue Werte an. Danach hab ich Folgendes probiert:

[vor der Aktion]
reg export HKLM\Software\Classes\CLSID vorher.reg
[nach der Aktion]
reg export HKLM\Software\Classes\CLSID nachher.reg

Und die beiden Dateien wollte ich dann vergleichen mit einem Schnipsel, den ich hier gefunden hab:


Weil ich nicht sicher bin, ob die Reihenfolge der vorher-nachher-Dateien stimmt, hab ich es auch umgekehrt probiert und auch mal die Endung in txt geändert - nix. Mit kleineren Testdateien ging es, aber die echten haben je 4,5 MB und wollen einfach nicht. Hat jemand eine Idee?

Danke und Gruß

Martin

Content-Key: 176366

Url: https://administrator.de/contentid/176366

Printed on: April 18, 2024 at 04:04 o'clock

Member: holli.zimmi
holli.zimmi Nov 17, 2011 at 07:27:05 (UTC)
Goto Top
Hi,

man konnte unter NT die bash als Kommando.intepreter einstellen.Dann kannst du dieses mit dem Vi, awk usw. vielleicht besser abfragen.
Oder einfach die das gute alte qbasic.exe benutzen ( einfach reinkopieren).

Wenn du das nicht installieren willst, dann mach es über eine andere PC , UNIX ( ich hab es nicht unter Linux probiert), kann die ksh-Shell auch mit einem parameter wie die der "geliebte" vi oder sogar emacs funktionieren.

Gruss

Holli
Mitglied: 60730
60730 Nov 17, 2011 at 08:26:30 (UTC)
Goto Top
Moin,

die Idee ist gut, der Ansatz verbesserungswürdig.

Wenn du zwei dateien Zeilenweise mit findstr /c: vergleichst, dann würde sich was anderes, als die Schleife anbieten - schau mal nach findstr /? /F:
Unabhängig davon, wenn eine Datei 4.5 MB groß ist - dann wird das logischerweise ein paar minuten brauchen.

Von daher such mal nach Procmon.

Gruß
Mitglied: 64748
64748 Nov 17, 2011 at 08:45:14 (UTC)
Goto Top
Guten Morgen zusammen,
Zitat von @holli.zimmi:
man konnte unter NT die bash als Kommando.intepreter einstellen.Dann kannst du dieses mit dem Vi, awk usw. vielleicht besser
abfragen.
...
Wenn du das nicht installieren willst, dann mach es über eine andere PC , UNIX ( ich hab es nicht unter Linux
probiert), kann die ksh-Shell auch mit einem parameter wie die der "geliebte" vi oder sogar emacs funktionieren.
diff könnte das richtige Tool auf einem Unix/Linux-Rechner sein.

Markus
Member: dog
dog Nov 17, 2011 at 14:57:40 (UTC)
Goto Top
dass unter WinXP den Registry-Zweig HKLM\Software\Classes\CLSID vor und nach einer Aktion vergleicht und neu eingetragene Schlüssel in eine txt-Datei schreibt.

Das Programm nennt sich RegShot.
Member: martinstein
martinstein Nov 21, 2011 at 20:55:32 (UTC)
Goto Top
Danke für die Denkanstöße, ich hab's jetzt folgendermaßen gelöst:

Vor und nach der Aktion exportiere ich mit reg export den entsprechenden Zweig in reg-Dateien, die ich dann mit dem Kommandozeilen-Tool regdiff vergleiche. Dauert alles in allem nur wenige Sekunden.

http://p-nand-q.com/download/regdiff.html

Danke nochmal und frohes Schaffen

Martin