Variable USERPROFILE wird nicht beim Aufruf über eine BAT-Datei in einer REG-Datei ersetzt !
Variable USERPROFILE wird nicht beim Aufruf über eine BAT-Datei in einer REG-Datei ersetzt !
Hallo zusammen,
ich habe folgende Aufgabenstellung :
Die Anwender sollen sich beim erstmaligen Anmelden an einem Rechner eine BAT-Datei ausführen, die bestimmte Konfigurationen
an einem Programm durchführt, ausführen. In der BAT-Datei werden Kopieraktionen gemacht und Registry-Einträge eingefügt bzw. ersetzt. Soweit funktioniert die ganze Sache.
Ich habe nun folgendes Problem :
In der BAT-Datei habe ich folgenden Aufruf:
....
copy \\server\...\...\LT2005_Erstmaliges_Starten.reg c:\temp\LT2005_Erstmaliges_Starten.reg
regedit c:\temp\LT2005_Erstmaliges_Starten.reg
del c:\temp\LT2005_Erstmaliges_Starten.reg
...
In der Datei LT2005_Erstmaliges_Starten.reg habe ich eine ganze Menge Einträge, die die Variable %USERPROFILE% enthalten.
Diese werden nun über die BAT-Datei als dummer Text eingefügt, und nicht durch den Wert der Variable ersetzt.
Beispiel aus der REG-Datei :
...
[HKEY_CURRENT_USER\Software\Autodesk\AutoCAD LT\R10\ACLT-301:407]
@=""
"AutoMigrate"=dword:00000002
"LaunchNFW"=dword:00000003
"LocalRootFolder"="%USERPROFILE%\\Lokale Einstellungen\\Anwendungsdaten\\Autodesk\\AutoCAD LT 2005\\R10\\deu\\"
"NFWFile"="%ProgramFilesDir%\\Autodesk\\AutoCAD LT 2005\\Help\\aclt_NFW.CHM"
"RoamableRootFolder"="%USERPROFILE%\\Anwendungsdaten\\Autodesk\\AutoCAD LT 2005\\R10\\deu\\"
...
Es wäre nun ein Riesenaufwand, alle Registry-Einträge in die BAT-Datei über den Befehl RegAdd neu anzulegen, nur damit die Variable %USERPROFILE% ersetzt wird.
Beim Starten von AutoCad LT2005 kommt nun eine Fehlermeldung mit "ungültiger Pfad bzw. Dateiname...".
Wenn ich die Reg-Datei manuell ändere und meinen Account eintrage, kommt AutoCad ohne Fehlermeldungen hoch.
Ich kann aber vorher nicht wissen, welcher Anwender diese BAT-Konfigurationsdatei benutzt und was festes in die REG-Datei eintragen.
Wer hat zu diesem Problem einen Workaround ??
Am Besten einen einfachen Workaround mit DOS-Befehlen, z.B. durch ersetzen des dummen Strings %USERPROFILE% in der REG-Datei mit "C:\Dokumente und Einstellungen\Username" ??
Zum Zeitpunkt der Ausführung der BAT-Datei ist ja der Username bereits bekannt.
Oder gibt es sonstige Tools, mit deren Hilfe ich , ohne die komplette REG-Datei überarbeiten zu müssen, ans Ziel gelangen kann ?
Ich bin leider kein besonderer DOS-Crack !!
Vielen Dank schonmal im voraus.
Mfg
Ertan Öncel
ich habe folgende Aufgabenstellung :
Die Anwender sollen sich beim erstmaligen Anmelden an einem Rechner eine BAT-Datei ausführen, die bestimmte Konfigurationen
an einem Programm durchführt, ausführen. In der BAT-Datei werden Kopieraktionen gemacht und Registry-Einträge eingefügt bzw. ersetzt. Soweit funktioniert die ganze Sache.
Ich habe nun folgendes Problem :
In der BAT-Datei habe ich folgenden Aufruf:
....
copy \\server\...\...\LT2005_Erstmaliges_Starten.reg c:\temp\LT2005_Erstmaliges_Starten.reg
regedit c:\temp\LT2005_Erstmaliges_Starten.reg
del c:\temp\LT2005_Erstmaliges_Starten.reg
...
In der Datei LT2005_Erstmaliges_Starten.reg habe ich eine ganze Menge Einträge, die die Variable %USERPROFILE% enthalten.
Diese werden nun über die BAT-Datei als dummer Text eingefügt, und nicht durch den Wert der Variable ersetzt.
Beispiel aus der REG-Datei :
...
[HKEY_CURRENT_USER\Software\Autodesk\AutoCAD LT\R10\ACLT-301:407]
@=""
"AutoMigrate"=dword:00000002
"LaunchNFW"=dword:00000003
"LocalRootFolder"="%USERPROFILE%\\Lokale Einstellungen\\Anwendungsdaten\\Autodesk\\AutoCAD LT 2005\\R10\\deu\\"
"NFWFile"="%ProgramFilesDir%\\Autodesk\\AutoCAD LT 2005\\Help\\aclt_NFW.CHM"
"RoamableRootFolder"="%USERPROFILE%\\Anwendungsdaten\\Autodesk\\AutoCAD LT 2005\\R10\\deu\\"
...
Es wäre nun ein Riesenaufwand, alle Registry-Einträge in die BAT-Datei über den Befehl RegAdd neu anzulegen, nur damit die Variable %USERPROFILE% ersetzt wird.
Beim Starten von AutoCad LT2005 kommt nun eine Fehlermeldung mit "ungültiger Pfad bzw. Dateiname...".
Wenn ich die Reg-Datei manuell ändere und meinen Account eintrage, kommt AutoCad ohne Fehlermeldungen hoch.
Ich kann aber vorher nicht wissen, welcher Anwender diese BAT-Konfigurationsdatei benutzt und was festes in die REG-Datei eintragen.
Wer hat zu diesem Problem einen Workaround ??
Am Besten einen einfachen Workaround mit DOS-Befehlen, z.B. durch ersetzen des dummen Strings %USERPROFILE% in der REG-Datei mit "C:\Dokumente und Einstellungen\Username" ??
Zum Zeitpunkt der Ausführung der BAT-Datei ist ja der Username bereits bekannt.
Oder gibt es sonstige Tools, mit deren Hilfe ich , ohne die komplette REG-Datei überarbeiten zu müssen, ans Ziel gelangen kann ?
Ich bin leider kein besonderer DOS-Crack !!
Vielen Dank schonmal im voraus.
Mfg
Ertan Öncel
Please also mark the comments that contributed to the solution of the article
Content-Key: 15995
Url: https://administrator.de/contentid/15995
Printed on: April 26, 2024 at 13:04 o'clock
8 Comments
Latest comment
Moin, Ertan,
IMHO ist das schon ganz richtig, das die Variable %USERPROFILE% NICHT aufgelöst wird.
Da ist irgendwas anderes in die Grütze gegangen.
Wie geht denn die Fehlermeldung "Pfad nicht gefunden ..." weiter??
AUF GAR KEINEN FALL jetzt da irgendwelche Variablen "von Hand" auflösen.
Ist denn die Variable %USERPROFILE% beim User (nicht bei der Inst) korrekt gesetzt?
Gruß
Biber
IMHO ist das schon ganz richtig, das die Variable %USERPROFILE% NICHT aufgelöst wird.
Da ist irgendwas anderes in die Grütze gegangen.
Wie geht denn die Fehlermeldung "Pfad nicht gefunden ..." weiter??
AUF GAR KEINEN FALL jetzt da irgendwelche Variablen "von Hand" auflösen.
Ist denn die Variable %USERPROFILE% beim User (nicht bei der Inst) korrekt gesetzt?
Gruß
Biber
Moin Ertan,
na, wenn Du auch anderen Ideen aufgeschlossen bist, melde ich mich nochmal.
1. IMHO=In my humble opinion=meiner unmaßgeblichen Meinung nach
2. Das IMHO gilt auch immer noch
3.>SYSTEMFEHLER: Ungültiger Pfad/Dateiname für Konfiguration:
%USERPROFILE%Lokale Einstellungen\Anwendungsdaten\Autodesk\AutoCAD LT2005\R10\deu
Hat er doch recht. %USERPROFILE% hat NIE einen abschließenden Backsslash und zweitens steht es nicht in Anführungszeichen trotz Leerzeichen im Pfadnamen.
Richtiger:
"%USERPROFILE%\Lokale Einstellungen\Anwendungsdaten\Autodesk\AutoCAD LT2005\R10\deu"
oder
%USERPROFILE%\Lokale~1\Anwend~1\Autodesk\AutoCA~1\R10\deu
IMHO zumindest.
MfG Biber
P.S. MfG = Mit feixendem Grinsen
na, wenn Du auch anderen Ideen aufgeschlossen bist, melde ich mich nochmal.
1. IMHO=In my humble opinion=meiner unmaßgeblichen Meinung nach
2. Das IMHO gilt auch immer noch
3.>SYSTEMFEHLER: Ungültiger Pfad/Dateiname für Konfiguration:
%USERPROFILE%Lokale Einstellungen\Anwendungsdaten\Autodesk\AutoCAD LT2005\R10\deu
Hat er doch recht. %USERPROFILE% hat NIE einen abschließenden Backsslash und zweitens steht es nicht in Anführungszeichen trotz Leerzeichen im Pfadnamen.
Richtiger:
"%USERPROFILE%\Lokale Einstellungen\Anwendungsdaten\Autodesk\AutoCAD LT2005\R10\deu"
oder
%USERPROFILE%\Lokale~1\Anwend~1\Autodesk\AutoCA~1\R10\deu
IMHO zumindest.
MfG Biber
P.S. MfG = Mit feixendem Grinsen
>Ich will nochmal darauf hinweisen, dass in der REGISTRY nicht %USERPROFILE% stehen darf.
WARUM????
Schau doch bitte mal, wie z.B. die %TEMP%-Variable in der Registry gesetzt ist.
Oder such in der Registry nach dem Wert %USERPROFILE%... gibt es reichlich und funktionierend.
Wette eine halbe Flasche Becks, dass das Problem woanders liegt.
Aber ich lass auch gern andere Meinungen gelten - bin jetzt still und lese erstmal nur mit, was für Alternativlösungen gepostet werden.
LG (=Liebe Grüße)
Frank / der Biber aus Bremen
WARUM????
Schau doch bitte mal, wie z.B. die %TEMP%-Variable in der Registry gesetzt ist.
Oder such in der Registry nach dem Wert %USERPROFILE%... gibt es reichlich und funktionierend.
Wette eine halbe Flasche Becks, dass das Problem woanders liegt.
Aber ich lass auch gern andere Meinungen gelten - bin jetzt still und lese erstmal nur mit, was für Alternativlösungen gepostet werden.
LG (=Liebe Grüße)
Frank / der Biber aus Bremen
Hallo Ertan,
ich hatte ein ähnliches Problem. Verbindliche servergespeicherte Benutzerprofile. Dazu wurde die Software auf den Clients installiert und getestet, ob die Software fkz.. Danach das lokale Benutzerprofil aus der Systemsteuerung heraus in das freigegebene Vz. für den verbindlichen Profilpfad kopiert. Nebst sämtlicher Reg-Daten für AutoCAD. Und das ist der falsche Weg.
Das mit der Anlage und Kopie des verbindlichen Benutzerprofils ist soweit ok. AutoCAD darf jedoch nicht vorher installiert worden sein. D.h. es dürfen sich keinerlei Reg-Daten im Profil befinden, die auf die AutoCAD-Installation verweisen, denn AutoCAD schreibt ja so gerne absolute Pfade. Was prima fkz. hat ist der Weg über die Benutzung der AutoCAD-Installations-CD:
Netzwerkeinrichtung > Schneller Einstieg für Netzwerkadministratoren > Verwenden von Gruppenrichtlinien zur Installlation einer Einrichtung
Dabei wird nach Computertstart (ich würde vorher sämtliche GPOs, die sich auf Computerkonfigurationen beziehen entfernen) AutoCAD unter der Anmeldung eines normalen (Test) Domänenbenutzer installiert und kann anschließend von ALLEN Domänenbenutzer be-/genutzt werden (GPO notfalls nach der Anmeldung mit gpupdate /force erzwingen). Nachdem auf allen Rechnern per Test-Domänenbenutzer AutoCAD installiert wurde, wurde diese GPO (Computerkonfiguration) wieder entfernt (die Verknüpfung für die Clients) und alle anderen GPOs wieder auf die Maschinen gezogen. Fertig.
Hoffe das hilft oder hast Du schon eine andere Lösung?
gruß
r.
ich hatte ein ähnliches Problem. Verbindliche servergespeicherte Benutzerprofile. Dazu wurde die Software auf den Clients installiert und getestet, ob die Software fkz.. Danach das lokale Benutzerprofil aus der Systemsteuerung heraus in das freigegebene Vz. für den verbindlichen Profilpfad kopiert. Nebst sämtlicher Reg-Daten für AutoCAD. Und das ist der falsche Weg.
Das mit der Anlage und Kopie des verbindlichen Benutzerprofils ist soweit ok. AutoCAD darf jedoch nicht vorher installiert worden sein. D.h. es dürfen sich keinerlei Reg-Daten im Profil befinden, die auf die AutoCAD-Installation verweisen, denn AutoCAD schreibt ja so gerne absolute Pfade. Was prima fkz. hat ist der Weg über die Benutzung der AutoCAD-Installations-CD:
Netzwerkeinrichtung > Schneller Einstieg für Netzwerkadministratoren > Verwenden von Gruppenrichtlinien zur Installlation einer Einrichtung
Dabei wird nach Computertstart (ich würde vorher sämtliche GPOs, die sich auf Computerkonfigurationen beziehen entfernen) AutoCAD unter der Anmeldung eines normalen (Test) Domänenbenutzer installiert und kann anschließend von ALLEN Domänenbenutzer be-/genutzt werden (GPO notfalls nach der Anmeldung mit gpupdate /force erzwingen). Nachdem auf allen Rechnern per Test-Domänenbenutzer AutoCAD installiert wurde, wurde diese GPO (Computerkonfiguration) wieder entfernt (die Verknüpfung für die Clients) und alle anderen GPOs wieder auf die Maschinen gezogen. Fertig.
Hoffe das hilft oder hast Du schon eine andere Lösung?
gruß
r.