Filecomparing werkt niet goed

Pagina: 1
Acties:

  • wildhagen
  • Registratie: Juni 1999
  • Niet online
Ik zit hier met een probleem met filecomparing.

Ik wil hier op mijn werk dagelijks een check van de Services-key en alles daaronder in de CCS-sectie van de registry exporteren en vergelijken met een soort 'snapshot' die we hebben liggen. Dit om te kunnen monitoren of er op de servers gerommeld is.

Hiervoor gebruik ik een batch-file in combinatie met de REG.EXE-tool uit de Resource kit. So far so good, geen problemen.

Echter, de output hiervan is in Unicode-formaat. Daar kan ik dus niet zoveel mee. Nu heb ik gevonden dat je hem van unicode kan converteren naar ascii met het TYPE-commando (gewoon TYPE unicodefile > asciifile).

Nu heb ik dus 2 files (een snapshotfile en een daily regexport), beide in ASCII formaat. Echter, FC geeft altijd verschillen aan, ondanks dat die er niet zijn (na nadere inspectie). Ik heb ook de 3rd-party tool CMP32 geprobeerd, maar die vind nooit verschillen, ook als ze er wel zijn (:?)...

Ik heb al naar andere filecompare-tools gekeken, en op zich zijn die er genoeg, maar ik heb één eis: hij moet command-line based zijn (of in ieder geval de mogelijkheid van commandline hebben). Die kan ik dus niet vinden...

Nu heb ik dus 2 vragen:

1) Zijn er filecompare-tools die goed voldoen en die vanaf de commandline werken? Bij voorkeur freeware, maar shareware mag ook (licenties kunnen aangeschaft worden)
2) Is er een makkelijker manier om dit te doen? Let op: ik moet ook de inhoud van de service hebben, dus iets als NETSVC.EXE is voor mij niet voldoende.

Ik heb hier de batch-files die ik gebruik opgenomen:

Dit is het hoofdscript wat opgestart word:

code:
1
2
3
4
5
6
7
8
9
10
11
12
del /Q d:\Scripts\RegCheck\OutputDaily\*.*
del /Q results.txt

for /F %%i IN (servers) do call d:\scripts\regcheck\exportreg.bat %%i

cd ..

cls

for /F %%i IN (servers) do move \\%%i\c$\install\%%i.PCS D:\Scripts\RegCheck\OutputDaily

for /F %%i IN (servers) do call compare.bat %%i


Die gebruikt twee hulpbatchfiles, namelijk compare om de daadwerkelijke compare te doen (filecompare.exe is een tool door mijn collega geschreven, maar werkt ook niet goed voor mijn wensen):

code:
1
2
3
4
5
6
7
8
d:
cd \scripts\regcheck\OutputDaily

TYPE %1.PCS > %1.ASC

..\filecompare ..\OutputOrg\%1org.PCS %1.ASC >> d:\scripts\regcheck\results.txt

cd \scripts\regcheck


En een file die de daadwerkelijke export doet

code:
1
2
3
d:
cd \scripts\regcheck\rprocs
rprocs %1


Remote op de servers word dan dit script gedraaid:

code:
1
2
3
4
@ECHO OFF
cd \rprocs.lt
CMD /C REG EXPORT HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services c:\install\%COMPUTERNAME%.PCS 
CMD /C exit


Ik hoop dat iemand kan helpen, want na een hele week kloten (en verschillende methodes te hebben geprobeerd) heb ik mijn mogelijkheden wel uitgeput :'(

Virussen? Scan ze hier!


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Je zou die unicode files kunnen laten comparen met een binary compare (fc /b) - maar ik gok dat een aantsl services gewoon bepaalde info wegschrijven in "Current Control Set" en ze dus ook daadwerkelijk veranderen :)

  • wildhagen
  • Registratie: Juni 1999
  • Niet online
elevator schreef op 02 februari 2004 @ 15:45:
Je zou die unicode files kunnen laten comparen met een binary compare (fc /b) - maar ik gok dat een aantsl services gewoon bepaalde info wegschrijven in "Current Control Set" en ze dus ook daadwerkelijk veranderen :)
/B heb ik ook al geprobeerd, maar dan is de output binair (nog niet zo'n probleem), maar wat nog erger is: ik heb dan niet de mogelijkheid om regelnummers te outputten, zodat de changes nauwelijks te tracken zijn.

Voor wat betreft je tweede deel dat die services live schrijven in CCS: damn, ik hoop dat dat niet zo is, anders gaat wat willen nooit wekren :'(

Virussen? Scan ze hier!


  • BoGhi
  • Registratie: Juli 2002
  • Laatst online: 22-04 18:28
Zo te zien ben je redelijk thuis in scriptjes, misschien kun je gewoon een eenvoudig progje schrijven in C? (of evt. Basic)
't Is niet meer dan 2 * een fopen(), en dan steeds 1 regel (fgets), of 1 karakter lezen (fgetc), totdat je EOF tegenkomt. En dan netjes sluiten (fclose).
Of is dit iets te simpel gedacht?

Programmers don't die. They GOSUB without RETURN


  • wildhagen
  • Registratie: Juni 1999
  • Niet online
BoGhi schreef op 02 februari 2004 @ 23:42:
Zo te zien ben je redelijk thuis in scriptjes, misschien kun je gewoon een eenvoudig progje schrijven in C? (of evt. Basic)
't Is niet meer dan 2 * een fopen(), en dan steeds 1 regel (fgets), of 1 karakter lezen (fgetc), totdat je EOF tegenkomt. En dan netjes sluiten (fclose).
Of is dit iets te simpel gedacht?
Helaas ben ik erg slecht in programmeren, alleen batch-files (i.c.m. 3rd party tools) gaan me erg goed af, omdat het een liefhebberij van me is.

Ben er vandaag weer een paar uur met dit probleem zoet geweest, word helemaal knetter...

Virussen? Scan ze hier!


  • BoGhi
  • Registratie: Juli 2002
  • Laatst online: 22-04 18:28

Programmers don't die. They GOSUB without RETURN


  • wildhagen
  • Registratie: Juni 1999
  • Niet online
Thanks, ik had Beyond Compare idd zelf ook al gevonden, maar zover ik kan zien is dat dus geen commandline based programma. En dat is een harde eis, helaas, aangezien het een unattended geschedulede job moet worden.

Ik zal er morgen toch even naar kijken.

[ Voor 10% gewijzigd door wildhagen op 03-02-2004 22:38 ]

Virussen? Scan ze hier!


  • BoGhi
  • Registratie: Juli 2002
  • Laatst online: 22-04 18:28
Ik dacht aan cmp223en.zip , of filecump.zip. Commandline progjes zo te zien.

Programmers don't die. They GOSUB without RETURN


  • wildhagen
  • Registratie: Juni 1999
  • Niet online
BoGhi schreef op 04 februari 2004 @ 10:33:
[...]


Ik dacht aan cmp223en.zip , of filecump.zip. Commandline progjes zo te zien.
De eerste is inderdaad commandline, ik zal er eens naar gaan kijken.

Filecump.zip is helaas een GUI-interface, dus die valt al af.

Bedankt!

Virussen? Scan ze hier!

Pagina: 1