sir-gunny
Goto Top

Wie kann ich mit einer Batchdatei ein Programm überwachen?

Hi.

Es geht um eine BootCD mit WinPE. Hier habe ich Paragon Backup and Recovery Free Edition (PBR) integriert. In der Anleitung steht das ich vor Benutzung des Programms in WinPE einen Registryeintrag löschen muss. Wenn ich das nicht mache und PBR starte passiert nix und ich kann auch keine anderen Programme mehr ausführen. Wenn ich den Schlüssel allerdings lösche funktioniert es Super. Da das WinPE aber meine Backuplösung ist möchte ich da nicht einfach irgendwelche Registryeinträge dauerhaft löschen da ich nicht weiß wie sich das auf die anderen Programme auswirkt.

Der Schlüssel: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT

Ich möchte jetzt vor dem Programmstart eine Batch "klemmen" die den Registryschlüssel löscht, das Programm startet und ihn nach Beendigung vom Programm wieder erstellt. Hoffe dass das Möglich ist und Ihr mir helfen könnt face-smile

Greez vom gunny

Content-Key: 148934

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

Printed on: May 5, 2024 at 02:05 o'clock

Member: Crusher79
Crusher79 Aug 13, 2010 at 13:06:24 (UTC)
Goto Top
Hi,

also relativ einfach.

regtest.bat
regedit /s regtest.reg
"c:\Program Files (x86)\Microsoft Office\OFFICE11\WINWORD.EXE"  
regedit /s regtest2.reg

regtest.reg
Windows Registry Editor Version 5.00

<HKEY_CURRENT_USER\Software\AAATest>

regtest2.reg
regtest2.reg
Windows Registry Editor Version 5.00

<-HKEY_CURRENT_USER\Software\AAATest>

Gut da fehlen noch die Werte. Das "-" vor HKEY bewirkt das der Schlüssel gelöscht wird. Die reg Dateien kann man auch per Batch im Temp Ordner erstellen lassen. Der einfachheit halber hab ich da 2 speperate Dateien aufgeführt.

So ist der Grundaufbau. Kann man noch schöner machen

In einer Datei:
@echo off
echo Windows Registry Editor Version 5.00 > %TEMP%\regtest.reg
echo. >> %TEMP%regtest.reg
echo [HKEY_CURRENT_USER\Software\AAATest] >> %TEMP%\regtest.reg
echo. >> %TEMP%\regtest.reg
regedit /s %TEMP%\regtest.reg
del %TEMP%\regtest.reg
"c:\Program Files (x86)\Microsoft Office\OFFICE11\WINWORD.EXE"  
echo Windows Registry Editor Version 5.00 > %TEMP%\regtest.reg
echo. >> %TEMP%\regtest.reg
echo [-HKEY_CURRENT_USER\Software\AAATest] >> %TEMP%\regtest.reg
echo. >> %TEMP%\regtest.reg
regedit /s %TEMP%\regtest.reg
del %TEMP%\regtest.reg

mfg Crusher
Member: sir-gunny
sir-gunny Aug 13, 2010 at 13:51:51 (UTC)
Goto Top
Hi.

Danke für deine Antwort face-smile

Habe noch 2 fragen...
1. Was passiert denn bei "c:\Program Files (x86)\Microsoft Office\OFFICE11\WINWORD.EXE"? Ist das der Code für die Überwachung ob das Programm(PBR) geschlossen wird?

2. Gibt es eine Funktion die den Pfad vom Script angibt ähnlich wie bei %temp% also zb %scriptdir% ( "%scriptdir%\WINWORD.EXE")?
Member: Crusher79
Crusher79 Aug 13, 2010 at 16:10:04 (UTC)
Goto Top
Hi,

Batch wird von oben nach unten ausgeführt. winword.exe wird gestartet und cmd verharrt so lange, bist winword.exe geschlossen ist. Danach wird der Eintrag wieder aus registry gelöscht.

Im Prinzip genau umgekehrt zu dem, was du willst!

Wieso nimmst du nich einfach 2x CDs? Oder was genau hast du vor? So hättest du eine für PBR mit gelöschten key, die andere ganz normal. Ka ob man bei der PE die registry so einfach manipulieren kann, wie unter einem "normalen" System.

Also so weit funktioniert das hier. Nur das halt cmd Fenster immer auf bleibt! Sollte aber nicht sonderlich stören...

mfg Crusher

PS: Was meinst du mit Überwachung? Winword ist MS Word... Office!?!?!?
Mitglied: 60730
60730 Aug 13, 2010 at 20:21:41 (UTC)
Goto Top
Servus,

kannst du uns erlären, wo der Zusammenhang zwischen Überschrift und Frage zu finden ist?

Statt wie Crusher und viele andere (u.a ich) es empfehlen einfach eine separate CD zu brüzzeln, kann man es auch umständlich machen.

  • Austauschen der Startverknüpfung des Tools gegen eine bat mit ähnlichem Inhalt
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\MiniNT" /f  
pfad von pbr\pbr.exe oder com

Und zurück kriegst du den Key incl Werte dann via Ausschalten Neustarten.

Gruß
Member: sir-gunny
sir-gunny Aug 14, 2010 at 10:34:13 (UTC)
Goto Top
Hi.

Geht leider doch nicht so wie ich mir das vorgestellt habe. PBR10 besteht aus mehreren anwendungen. Wenn ich zb ein Backup erstellen möchte schließt sich der Luncher und der Backupserteller öffnet sich als seperate Anwendung. Da der Luncher aber schon geschlossen wurde, wurde der Registryeintrag wieder hergestellt und ich habe wieder das ursprünliche Problem. Daher bin ich das ganze anders anggangen. Hier mal der Code:

echo off

reg query "HKEY_LOCAL_MACHINE\SYSTEM\tadaaa"  
if errorlevel 1 goto:nvorh
if errorlevel 0 goto:vorh

:vorh
echo #################################################################
echo ##                                                             ##
echo ##            ! ! !  S E H R   W I C H T I G  ! ! !            ##
echo ##                                                             ##
echo ## Um  Paragon  Backup And Recovery  10  Free Edition  (PBR10) ##
echo ## ausführen  zu können  muss  ein  Registryschlüssel entfernt ##
echo ## werden.  Dies kann dazu  führen das andere  Programme nicht ##
echo ## richtig laufen!  Es wird empfohlen  keine anderen Programme ##
echo ## auszuführen  während  PBR10  Läuft.  Nachdem PBR10  beendet ##
echo ## wurde  führen  Sie  diese  Anwendung  erneut  aus,  um  den ##
echo ## ESchlüssel in der Registry wiederherzustellen!              ##
echo ##                                                             ##
echo ## Folgender Schlüssel muss entfernt werden:                   ##
echo ## HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT  ##
echo ##                                                             ##
echo #################################################################
echo.

:auswahl1
set /P auswahl=Möchten Sie den Schlüssel entfernen und PBR10 ausführen(J/N)?
if /i "%auswahl%"=="J" goto:Start1  
if /i "%auswahl%"=="N" goto:Exit  
echo Falsche Auswahl!
goto:auswahl1

:Start1
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\tadaaa" /f  
test.txt
pause
goto ende

:nvorh
echo ########################################################
echo ##                                                    ##
echo ## Der Registryschlüssel der den Start von Backup And ##
echo ## Recovery 10 Free Edition (PBR10) verhindert, wurde ##
echo ## bereits entfernt. Sie haben folgende Optionen:     ##
echo ##                                                    ##
echo ##     1 = Schlüssel wiederherstellen und beenden     ##
echo ##     2 = PBR10 ausführen                            ##
echo ##     3 = Beenden                                    ##
echo ##                                                    ##
echo ########################################################
echo.

:auswahl2
set /P auswahl=Bitte Auswahl treffen (1, 2 oder 3): 
if /i "%auswahl%"=="1" goto:Wiederh  
if /i "%auswahl%"=="2" goto:Start2  
if /i "%auswahl%"=="3" goto:Exit  
echo Falsche Auswahl!
goto:auswahl2

:Wiederh
reg add HKEY_LOCAL_MACHINE\SYSTEM\tadaaa
pause
goto ende

:Start2
test.txt
pause
goto ende

:exit
goto ende

Problem ist das ich den Eintrag in die Registry nur als Admin erstellen kann. Wenn ich die Batchdatei als Admin ausführe wird zwar der Registryeintrag geschrieben aber er gibt ne Fehlermeldung aus das er test.txt nicht finden kann. Ohne Adminrechte öffnet er test.txt ohne Probleme aber schreibt nix in die Registry. Ich möchte aber keinen Pfad zu test.txt angeben das sich ja in WinPE der laufwerksbuchstabe ja immer ändern kann. Kann es sein das ich als Admin nur nen Platzhalter wie zb %scriptdir%/test.txt verwenden muss?
Member: Crusher79
Crusher79 Aug 14, 2010 at 10:49:06 (UTC)
Goto Top
Hi,

du willst doch gar nicht die text.txt haben. Ist doch nur Platzhalt für PBR....

Was ist, wenn du einfach Programm Ordner als Variable einträgst? Sollte doch dann reichen. Hab oben nur den Ganzen Pfad kopiert, weils ichs mit dem Total Commander schnell kopieren konnte. Normal nimmt man natürlich Variable.

Kopier doch zum Testen mal die text Datein in C:\Programme.

Dann benutz mal

%PROGRAMFILES%\text.txt

Normal ist ja statt der text.txt der PBR dort hinterlegt. Wenn du den Benutzzer vor der Ausführung wechselst, ändern sich auch die Umgebungsvariablen. Deshalb wird die text.txt nich gefunden. Mit %PROGRAMFILES% sollte es aber gehen. Und du willst ja eh das Verz. ansprechen.

mfg Crusher
Mitglied: 60730
60730 Aug 14, 2010 at 12:08:18 (UTC)
Goto Top
moin,

einer von uns beiden hat grade ein technisches Problem..

Du willst eine PE Boot CD umstricken - welche denn?
Die - die ich kenne - egal ob offiziell oder 3rd party sind immer abgespeckte Varianten einer bestimmten Windows Version und haben nur "Admin" und "System" als "User"

Das sich ja in WinPE der laufwerksbuchstabe ja immer ändern kann
halte ich streng genommen für ein Gerücht und %systemdrive% ist immer %systemdrive% - egal ob das nach a,b,oderx,y,z aufgelöst wird.
Aber wie geschrieben - eine Boot CD hat einen fest definierten Laufwerksbuchstaben und du willst ja hoffentlich nicht das die Bootcd auch den Key löscht, wenn die nur "so" im Rechner liegt, sondern nur - wenn die aktiv ist! (Ausrufezeichen)

Besorg dir einen Virtuellen Server, der mit Isos umgehen kann und teste so die geänderte PE vorm brennen.

Ist alles nicht so kompliziert.

btw:
66. :Start2 

67. test.txt 

68. pause 

69. goto ende 
finde ich persönlich auch nicht so passend..
:start2
start /wait "dummy" test.txt  
goto exit
passt da besser und die Sprungmarke exit gibts ja auch.

Gruß
Member: bastla
bastla Aug 14, 2010 at 13:40:57 (UTC)
Goto Top
Hallo sir-gunny und willkommen im Forum!

Das gesuchte "%scriptdir%/test.txt" würde etwa so aussehen:
"%~dp0\test.txt"

[OT]
Interessant finde ich übrigens den kulinarischen Aspekt face-wink:
... schließt sich der Luncher und der Backupserteller öffnet sich ...
[/OT]

Grüße
bastla
Member: Biber
Biber Aug 14, 2010 at 15:04:19 (UTC)
Goto Top
[OT]
Moin bastla,
Zitat von @bastla:
Interessant finde ich übrigens den kulinarischen Aspekt face-wink:
> ... schließt sich der Luncher und der Backupserteller öffnet sich ...
Mein seliger Onkel Heinz-Wilfried machte auch immer so kleine Backupser..., aber nach jedem Essen, nach nur nach dem Lunch..

BTW willkommen im Forum, sir-gunny.
[/OT]
Member: sir-gunny
sir-gunny Aug 14, 2010 at 21:09:26 (UTC)
Goto Top
Hi.

Die Backupserteller sind ein Erbstück von meiner Oma... die machte immer so leckere Backupser!!! Jammi :D

@Crusher79: Danke! geht super face-smile

@timobeil: Ich mach das WinPE mit UBCD4Win. Da hab ich halt PBR10 manuell als Plugin hinzugefügt (mit noch ein paar anderen die super funzen). Daher diese Umstände da ich alles aus einer hand haben möchte. Momentan ist der systemdrive X:. In sofern könnt ich das auch so in die Batch verankern. Möchte ich aber nicht weill ich nie feste Pfade verwende und weills einfach nur blöd aussieht. Habe auch das Problem mit den Umlauten umgangen :D

@bastla: Momentan verwende ich die Variante von Crusher79. Werde aber auch "%~dp0\test.txt" testen und wenns geht dann das verwenden weill ich dann auf keinen speziellen Pfad mehr angewiesen bin face-smile

Hier jetzt mal meine bisherie Batch und die dazugehörige PBR10 menü.xml falls jemand das auch implementieren möchte.

vsm.bat
echo off

reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT"  
if errorlevel 1 goto:nvorh
if errorlevel 0 goto:vorh

:vorh
echo #################################################################
echo ##                                                             ##
echo ##            ! ! !  S E H R   W I C H T I G  ! ! !            ##
echo ##                                                             ##
echo ## Um  Paragon  Backup And Recovery  10  Free Edition  (PBR10) ##
echo ## ausfhren  zu k”nnen  muss  ein  Registryschlssel entfernt ##
echo ## werden.  Dies kann dazu  fhren das andere  Programme nicht ##
echo ## richtig laufen!  Es wird empfohlen  keine anderen Programme ##
echo ## auszufhren  w„hrend  PBR10  L„uft.  Nachdem PBR10  beendet ##
echo ## wurde  fhren  Sie  diese  Anwendung  erneut  aus,  um  den ##
echo ## Schlssel in der Registry wiederherzustellen!               ##
echo ##                                                             ##
echo ## Folgender Schlssel muss entfernt werden:                   ##
echo ## HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT  ##
echo ##                                                             ##
echo #################################################################
echo.

:auswahl1
set /P auswahl=M”chten Sie den Schlssel entfernen und PBR10 ausfhren(J/N)?
if /i "%auswahl%"=="J" goto:Start1  
if /i "%auswahl%"=="N" goto:Exit  
echo Falsche Auswahl!
goto:auswahl1

:Start1
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT" /f  
%programfiles%\DB9x\program\launcher.exe
goto ende

:nvorh
echo ########################################################
echo ##                                                    ##
echo ## Der Registryschlssel der den Start von Backup And ##
echo ## Recovery 10 Free Edition (PBR10) verhindert, wurde ##
echo ## bereits entfernt. Sie haben folgende Optionen:     ##
echo ##                                                    ##
echo ##     1 = Schlssel wiederherstellen und beenden     ##
echo ##     2 = PBR10 ausfhren                            ##
echo ##     3 = Beenden                                    ##
echo ##                                                    ##
echo ########################################################
echo.

:auswahl2
set /P auswahl=Bitte Auswahl treffen (1, 2 oder 3): 
if /i "%auswahl%"=="1" goto:Wiederh  
if /i "%auswahl%"=="2" goto:Start2  
if /i "%auswahl%"=="3" goto:Exit  
echo Falsche Auswahl!
goto:auswahl2

:Wiederh
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT"  
goto ende

:Start2
%programfiles%\DB9x\program\launcher.exe
goto ende

:exit
goto ende

und hier jetzt die xml:
<!-- Nu2Menu entry for Paragon Drive Backup 9.x -->
<NU2MENU>
	<MENU ID="Programs">  
		<MITEM TYPE="POPUP" MENUID="Disk Tools">Disk Tools</MITEM>  
	</MENU>
	<MENU ID="Disk Tools">  
		<MITEM TYPE="POPUP" MENUID="Backup">Backup and Cloning</MITEM>  
	</MENU>
	<MENU ID="Backup">  
		<MITEM	TYPE="ITEM"  
			DISABLED="@Not(@FileExists(@GetProgramDrive()\Programs\DB9x\Program\vsm.bat))"  
			CMD="RUN"  
			FUNC="@GetProgramDrive()\Programs\DB9x\Program\vsm.bat">  
		Paragon Backup & Recovery 10
		</MITEM>

	</MENU>
</NU2MENU>

Danke an euch alle die mir geholfen haben face-smile echt super Leute hier face-smile