Varibale in Batchskript wird ignoriert. Wert wird aus Registry genommen
Hallo,
ich habe hier ein Tool, welches einen Lizenzserver benötigt. Dieser ist vorhanden und die entsprechenden Informationen liegen in einer Datei 'license.dat'
Das tool selber ist zentral installiert und die Lizenzinformation wird in einer Variable gespeichert.
das funktioniert soweit ganz gut, allerdings kommt es zu Problemen, wenn auf dem Rechner, wo es ausgeführt wird, das Tool lokal installiert ist und falsche Lizenzinformationen enthält.
Die Datei 'license.dat' liegt dann irgendwo unter 'C:\Programme\...' und die Information darüber liegt in der Registry
wenn das Programm hier gestartet wird, wird zuerst die Information aus der Registry angezogen, welche ja falsch ist. Gibt es eine Möglichkeit, wie ich es verhindern kann, dass das tool auf die Registry zugreift?
Gruß,
Steffen
ich habe hier ein Tool, welches einen Lizenzserver benötigt. Dieser ist vorhanden und die entsprechenden Informationen liegen in einer Datei 'license.dat'
Das tool selber ist zentral installiert und die Lizenzinformation wird in einer Variable gespeichert.
set LICSERVER=\\host\share\tool\license.dat
start tool.exe
das funktioniert soweit ganz gut, allerdings kommt es zu Problemen, wenn auf dem Rechner, wo es ausgeführt wird, das Tool lokal installiert ist und falsche Lizenzinformationen enthält.
Die Datei 'license.dat' liegt dann irgendwo unter 'C:\Programme\...' und die Information darüber liegt in der Registry
reg query HLKM\Software\tool\environment /s | find "LICSERVER"
LICSERVER REG_SZ "C:\Programme\tool\license.dat
wenn das Programm hier gestartet wird, wird zuerst die Information aus der Registry angezogen, welche ja falsch ist. Gibt es eine Möglichkeit, wie ich es verhindern kann, dass das tool auf die Registry zugreift?
Gruß,
Steffen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 128964
Url: https://administrator.de/forum/varibale-in-batchskript-wird-ignoriert-wert-wird-aus-registry-genommen-128964.html
Ausgedruckt am: 23.12.2024 um 11:12 Uhr
26 Kommentare
Neuester Kommentar
Hallo Knumskull,
dann hatte ich Dich wohl falsch verstanden, ich dachte "tool.exe" soll sich die Variable von alleine ziehen.
Wenn ich das jetzt richtig verstehe übergibst Du den Wert mit "%JT_CONFIG%".
Demnach sollte ein
vor Deinem Aufruf auch den falschen Wert ausgeben oder wird der richtige Wert übergeben, nur Dein Programm "JT_EXEC" berücksichtigt den nicht richtig?
Handelt es sich hier um ein eigenes Batch das aufgerufen wird? Oder eine Routine in einem größeren Batch?
Wo wird "JT_CONFIG" gesetzt?
Gruß
icsat
dann hatte ich Dich wohl falsch verstanden, ich dachte "tool.exe" soll sich die Variable von alleine ziehen.
Wenn ich das jetzt richtig verstehe übergibst Du den Wert mit "%JT_CONFIG%".
Demnach sollte ein
echo %JT_CONFIG%
Handelt es sich hier um ein eigenes Batch das aufgerufen wird? Oder eine Routine in einem größeren Batch?
Wo wird "JT_CONFIG" gesetzt?
Gruß
icsat
Leider habe ich immer noch nicht verstanden wo die Variable "JT_CONFIG" versorgt wird. Was ich aber bisher gesehen und verstanden habe wird das schon richtig sein. Dann bleibt eigentlich nur die Vermutung, dass deine "EXE" (JT_EXEC) den zweiten Parameter ignoriert.
Mein Verständnis bisher. Du hast ein Ablaufskript:
das in etwa so aussieht.
Bau doch in die Routine mal folgendes ein:
Zeigt das Echo die richtigen Übergabewerte an, dann ignoriert Deine "EXE" die Werte.
Zeigt Echo die falschen Werte an, dann werden Deine Variablen nicht richtig versorgt.
Gruß
icsat
Mein Verständnis bisher. Du hast ein Ablaufskript:
.
call %~dp0jt_config.bat
.
call :DO_CONVERT
.
exit
.
:DO_CONVERT
.
Bau doch in die Routine mal folgendes ein:
:DO_CONVERT
rem +-----------------------------------------------+
rem + MAIN - Konvertierung starten +
rem +-----------------------------------------------+
echo /----------------------------------------------/
echo / Konvertierung wird gestartet ... /
echo /----------------------------------------------/
pushd %~dp1
for /f "usebackq tokens=1" %%a in (`chdir`) do (
set drive=%%a
)
cd /D %USERPROFILE%
echo start /B /WAIT %JT_EXEC% %drive%\%~nx1 %JT_CONFIG%
pause
start /B /WAIT %JT_EXEC% %drive%\%~nx1 %JT_CONFIG%
if errorlevel 9606 call :ERROR_LIC
popd
Zeigt das Echo die richtigen Übergabewerte an, dann ignoriert Deine "EXE" die Werte.
Zeigt Echo die falschen Werte an, dann werden Deine Variablen nicht richtig versorgt.
Gruß
icsat
Du sagst:
und
Deshalb musst Du doch auch irgendwo die Variablen deklariert habe:
Oder reden wir seit ca. 1,5 Stunden an einander vorbei und irgendwo steht:
Und Deine eigentliche Frage lautet, dass dein Programm "Tool.exe" nicht die von Dir gesetzte Umgebungsvariable
sondern den Registry Wert
Irgendwie bin ich grad etwas verwirrt.
Haben wir tatsächlich die ganze Zeit an einander vorbei geredet, dann bleiben eigentlich nur die Lösungen, die von den Menschen mit mehr Durchblick schon genannt wurden:
Gruß
icsat
'tool.exe inputfile configfile'
und
start /B /WAIT %JT_EXEC% %drive%\%~nx1 %JT_CONFIG%
Deshalb musst Du doch auch irgendwo die Variablen deklariert habe:
set JT_EXEC=tool.exe
set JT_CONFIG=\\host\share\tool\license.dat
Oder reden wir seit ca. 1,5 Stunden an einander vorbei und irgendwo steht:
set JT_CONFIG=jt_config.bat
set LICSERVER=\\host\share\tool\license.dat
LICSERVER REG_SZ "C:\Programme\tool\license.dat"
verwendet.Irgendwie bin ich grad etwas verwirrt.
Haben wir tatsächlich die ganze Zeit an einander vorbei geredet, dann bleiben eigentlich nur die Lösungen, die von den Menschen mit mehr Durchblick schon genannt wurden:
Zitat von @Miyamoto:
Hi,
wenn du weißt das der Eintrag in der Registry falsch ist den
Lösch ihn doch oder ersetze ihn durch den richtigen Eintrag.
Wobei Du die Variante ja bereits ausgeschlossen hast.Hi,
wenn du weißt das der Eintrag in der Registry falsch ist den
Lösch ihn doch oder ersetze ihn durch den richtigen Eintrag.
Zitat von @Iwan:
hallo,
bietet das Programm vielleicht beim Aufruf die Möglichkeit, die
licence.dat per Parameter gleich mitzugeben?
Bietet Dein Programm diese Möglichkeit bisher nicht musst Du wohl oder übel das Programm anpassen.hallo,
bietet das Programm vielleicht beim Aufruf die Möglichkeit, die
licence.dat per Parameter gleich mitzugeben?
Gruß
icsat
Servus,
ich hab deinen Beitrag "irrtümlich" als Anspruchsvoll deklariert...
Mea Culpa
Es ist doch ganz einfach...
Wenn die beiden nicht identisch sind - hagelt es?
Ansonsten ist meine "denke" - und da irre ich mich fast nie...
In Fragen, die eine spezielle Software angeht - speziell wenn es sich um Lizensdatei "Fehler" geht..
Gibt es genau einen Ansprechpartner...
11 Beiträge für nix und wiedernix - einmal um den heissen Brei und zurück
Gruß
ich hab deinen Beitrag "irrtümlich" als Anspruchsvoll deklariert...
Mea Culpa
- Es heißt Variable - in solchen Fällen bin ich aber gerne
Vandale Kanibalebehilflich
Es ist doch ganz einfach...
Wenn die beiden nicht identisch sind - hagelt es?
fc /b "C:\Programme\tool\license.dat \host\share\tool\license.dat && echo alles in Butter|| copy \host\share\tool\license.dat C:\Programme\tool\license.dat
Ansonsten ist meine "denke" - und da irre ich mich fast nie...
In Fragen, die eine spezielle Software angeht - speziell wenn es sich um Lizensdatei "Fehler" geht..
Gibt es genau einen Ansprechpartner...
Den Hersteller..........
11 Beiträge für nix und wiedernix - einmal um den heissen Brei und zurück
allerdings kommt es zu Problemen, wenn auf dem Rechner, wo es ausgeführt wird, das Tool lokal installiert ist
Dann deinstalliert man das einfach "lokal"Gruß
Sorry, irgendwie stand ich wohl etwas auf der Leitung. Manchmal ist es wirklich von Vorteil wenn man lesen kann.
Ich gebe TimoBeil recht, eine Möglichkeit wäre die richtige Lizenzdatei auf den lokalen Arbeitsplatz zu kopieren, wenn die laut Registry dort erwartet wird.
Und man könnte das Tool auch auf den lokalen Plätzen deinstallieren.
Ich glaube nicht, dass der Softwarehersteller in diesem Fall für das Problem verantwortlich ist.
Woher nimmt die Software eigentlich die Info, wo die Lizenzdatei abgelegt ist, wenn das Tool nicht lokal installiert ist? Gibt es dort auch einen Registry-Key?
Gruß
icsat
Ich gebe TimoBeil recht, eine Möglichkeit wäre die richtige Lizenzdatei auf den lokalen Arbeitsplatz zu kopieren, wenn die laut Registry dort erwartet wird.
Und man könnte das Tool auch auf den lokalen Plätzen deinstallieren.
Ich glaube nicht, dass der Softwarehersteller in diesem Fall für das Problem verantwortlich ist.
Woher nimmt die Software eigentlich die Info, wo die Lizenzdatei abgelegt ist, wenn das Tool nicht lokal installiert ist? Gibt es dort auch einen Registry-Key?
Gruß
icsat
Zitat von @icsat:
Ich glaube nicht, dass der Softwarehersteller in diesem Fall für das Problem verantwortlich ist.
Ich glaube nicht, dass der Softwarehersteller in diesem Fall für das Problem verantwortlich ist.
Nein, dass ist dann schon der Thread Owner...
Nur kennt sich ja wohl niemand, als der Hersteller besser mit dem Tool aus und kann auch im Gegensatz zu uns etwas dazu sagen, warum denn die Lizenzdatei nötig ist....
Mal ganz scharf nachgedacht...
Und "ja" auch ich installiere Software im Programme Ordner -nur mache ich das dann auch richtig - vorher die Rechte für den Ordner ändern
PS: Irgendwie muß das Tool ja auch auf die Systeme gelangt sein...
Dieser Thread wird eine Never Ending Story und Aktenzeichen XY ungelöst läßt grüßen....
Bye
Sorry, ich bin dann wohl mal raus, mir fällt nichts mehr dazu ein.
Ich sehe eigentlich nur drei Chancen:
Gruß
icsat
Ich sehe eigentlich nur drei Chancen:
- Deinstallieren der lokalen Installation auf den betroffenen Rechnern
- Einmaliges Kopieren der Zentralen (korrekten) Lizenzdatei auf alle Clients, auf denen eine fehlerhafte Lizenzdatei vorhanden ist. Das müsste wegen der Berechtigungen dann eine zentral gesteuerte Aktion sein.
- Ändern des Registry Keys auf den betroffenen Rechnern. Auch das müsste dann eine einmalige zentrale Aktion sein.
Gruß
icsat
Zitat von @60730:
Nur kennt sich ja wohl niemand, als der Hersteller besser mit dem
Tool aus und kann auch im Gegensatz zu uns etwas dazu sagen, warum
denn die Lizenzdatei nötig ist....
Nur bringt es dem TO auch nix, wenn der Hersteller ihm erzählt wozu die Lizenzdatei nötig ist.Nur kennt sich ja wohl niemand, als der Hersteller besser mit dem
Tool aus und kann auch im Gegensatz zu uns etwas dazu sagen, warum
denn die Lizenzdatei nötig ist....
Zitat von @60730:
Und "ja" auch ich installiere Software im Programme Ordner
-nur mache ich das dann auch richtig - vorher die Rechte für den
Ordner ändern
Für mich wäre es über unsere Softwareverteilung auch kein Problem Rechte zu setzen, eine Datei auszutauschen, einen Registry Key zu ändern, Software zu installieren oder zu deinstallieren. Aber beim TO sieht das wohl anders aus.Und "ja" auch ich installiere Software im Programme Ordner
-nur mache ich das dann auch richtig - vorher die Rechte für den
Ordner ändern
Zitat von @60730:
PS: Irgendwie muß das Tool ja auch auf die Systeme gelangt
sein...
Scheinbar gibt es beim TO dafür keinen geregelten Prozess.PS: Irgendwie muß das Tool ja auch auf die Systeme gelangt
sein...
Zitat von @60730:
Dieser Thread wird eine Never Ending Story und Aktenzeichen
XY ungelöst läßt grüßen....
Trotzdem kann man versuchen zu helfen. Und wäre ich nicht so begriffsstutzig gewesen hätten wir hier so 5-10 Posts weniger.Dieser Thread wird eine Never Ending Story und Aktenzeichen
XY ungelöst läßt grüßen....
Zitat von @60730:
Bye
Ich bin dann hier auch mal raus.Bye
PS: Sorry für Off Topic.
Zitat von @Knumskull:
Denkst du vorher nach, bevor du schreibst? Ich will die Datei nicht umgehen, brauche ich auch nicht, da ich Lizenzen besitze.
Denkst du vorher nach, bevor du schreibst? Ich will die Datei nicht umgehen, brauche ich auch nicht, da ich Lizenzen besitze.
Nein ganz scharf nachgedacht hast du lokale installationen die - wenn Scharf nachgedacht eigentich Lizenzrechtlich laufen müssten.
Den Gag aus einer Einzelplatzversion eine Netzwerkversion zu machen - und scharf nachgedacht - "könnte" was ich dir aber nicht unterstelle - das was du da machst - genau das sein.
Denn entweder ist das Ding lizensiert, dann ist es egal - woher die Lizenzdatei kommt - oder Sie ist es nicht...
Das hat andere Gründe, nur jetzt soll das Tool eben da nicht mehr drauf sein. Und falls es das doch ist, soll es egal sein.
Und die wären?Gibt es eine Möglichkeit, wie ich es verhindern kann, dass das tool auf die Registry zugreift?
Wenn ich solche Zeilen lese - lese ich sehr genau....
Ganz ehrlich - entweder schaffts du es ein Startscript zu schreiben, das die Software deinstalliert - oder wie bereits angesprochen sprichst mit dem Lizenzgeber.
Oder soll ich Theorem Solutions ltd mal ne Mail schreiben?
Denn das was du da schreibst - hab ich in 24 Jahren Netzwerkern noch nie gesehen - aber sowas wie ADB und LPT Dongels schon
Btw: Die eine Zeile erübrigt eigentlich den ganzen Thread..
Desweiteren kann ich auf den Rechnern nicht einfach was löschen, da ich nicht immer Adminrechte besitze und die Anwender schomal gleich gar nicht.
Ändern und löschen "dürfte" in deinem Fall das gleiche sein....
Und falls es immer noch Leser geben sollte, die meinen, mir das nicht nachdenken vorwerfen zu müssen..
Was im Systemast der (Registry) gesetzt ist - ist Gesetz - alles andere - wie User Variablen oder Laufzeitvariablen dagegen nicht.
Gruß und sorry, falls ich den Eindruck erweckt habe nur" nachgedacht zu haben und nicht mitgedacht
Servus,
du mußt mir das nicht erklären - aber verstehe - das es quasi unmöglich ist - ohne Adminrechte etwas zu ändern.
Oder andersherum, du bist auf dem Holzweg.
In doppeltem Sinn...
Gruß
du mußt mir das nicht erklären - aber verstehe - das es quasi unmöglich ist - ohne Adminrechte etwas zu ändern.
Oder andersherum, du bist auf dem Holzweg.
In doppeltem Sinn...
- ich bin nicht gegen dich..
- dein Weg / Ansatz ist der falsche...
Gruß
Zitat von @Knumskull:
Ich wollte ja auf dem System nie was ändern. Nur die Sachen, die eventuell vorhanden sind, ignorieren.
Ich wollte ja auf dem System nie was ändern. Nur die Sachen, die eventuell vorhanden sind, ignorieren.
Und genau das ist doch der Holzweg....
siehe:
Was im Systemast der (Registry) gesetzt ist - ist Gesetz...
Aber mal ganz was anderes, was passiert denn nun - wenn das Tool lokal installiert und lokal ausgeführt wird?
"So" würde ich dann wohl eher weiterdenken, obwohl ich mich wiederhole - es ist einfacher / sinnvoller die lokale Installation zu löschen...
Gruß