SysWOW64 Datei in Ordner überschreiben

D

Don_2020

Gast
Ich möchte eine DLL im Ordner c:/Windows/SysWOW64 mit einer neuen Version überschreiben.
Das Kopieren der Datei scheitert an den Zugriffsrechten.

Hintergrund ist, das mir ungefragt ein Update eingespielt wurde. Leider habe ich zu spät bemerkt das eine Anwendung jetzt nicht mehr läuft. Das Rückgängigmachen des Updates dauert zu lange, da ich nicht weiss welches Update den Fehler verursacht hat.
Nach Rücksprache mit dem Programmhersteller wurde mir ein kostenpflichtiges Update (>1.000 EUR) angeboten. Das Update hat für mich sonst keinen Wert, da ich die neuen Funktionen nicht benötige.
Das Geld würde ich aber lieber für meinen Sommerurlaub ausgeben.

Nach dem Programmstart wird eine bestimmte Version einer dll bemängelt. Diese liegt in SysWOW64. Hier liegen die 32-Bit- Versionen der dlls. Ein Kopieren der dll in den Ordner c:/Windows/System32 bringt nichts. Es wird intern auf die 32-Bit-Version im Ordner V:/Windows/SysWOW64 verwiesen. Hier habe ich keinen Zugriff.

Wie kann ich eine DLL in den Ordner c:/Windows/SysWOW64 kopieren?
 
Pack die DLL doch mal direkt in das entsprechende Programmverzeichnis, vielleicht wird das vor dem SysWOW64 geprüft.
Laut https://learn.microsoft.com/en-us/w...der#standard-search-order-for-unpackaged-apps kommt das Verzeichnis allerdings erst an 7. Stelle. Kann durchaus sein, dass schon die "falsche" DLL durch die vorherigen Methoden versucht wird.

E: Als Admin kann ich (bei 25H2) Dateien nach SysWOW64 kopieren/verschieben. Ersetzen habe ich nicht versucht. Entweder die dll ist in Benutzung und kann deswegen nicht ersetzt werden oder die Datei hat eine bestimmte Berechtigung, die es standardmäßig verhindert.
Berechtigungen kann man als Admin zumindest immer irgendwie erlangen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Der Lord und areiland
Eben, das Programm sucht die DLL immer zuerst im eigenen Programmordner und erst dann im Systempfad. Also packt man sie dorthin und nicht in den Systempfad, wo man sich dann mit hoher Wahrscheinlichkeit Probleme mit anderen Anwendungen einhandelt.
 
  • Gefällt mir
Reaktionen: SimmiS, aragorn92 und CoMo
Vor ca. 3 Monaten funktionierte das Programm noch.
Wenn die DLL erst im Programmordner und danach die anderen Ordner durchsucht, ist es doch egal was in den SysWOW64-Ordner durch ein Update geändert wird.

So ganz verstehe ich den Sachverhalt nicht.
 
Don_2020 schrieb:
Wenn die DLL erst im Programmordner und danach die anderen Ordner durchsucht, ist es doch egal was in den SysWOW64-Ordner durch ein Update geändert wird.
Ist die DLL denn im Programmverzeichnis oder nicht?
 
Es gibt noch wesentlich mehr 32Bit Programme die auf diese Dll zurückgreifen könnten und diese könnten dann in Probleme laufen, wenn Du wegen eines Programmes das Original in SysWoW64 überschreibst. Genau deswegen macht man das nicht, sondern legt diese Dll (die vermutlich eine ältere Version ist) direkt im Ordner des einzigen problematischen Programms ab.
 
  • Gefällt mir
Reaktionen: aragorn92
Im Programmordner liegt die betreffende Dll nicht. In der Fehlermeldung wird auf die C:/Windows/System32 bzw. C:/Windows/SysWOW64 verwiesen.

Ich habe zwar einen Workaround im Internet gefunden. Die Dll wird in der ini-Datei auskommentiert. Aber ich weiss nicht ob das zu unerwünschten Seiteneffekten führt.
 
Um welches Programm und welche Datei handelt es sich denn überhaupt, was nun nicht mehr funktioniert?
Und welche Fehlermeldung erfolgt denn und vor allem wo oder wie wird sie Dir angezeigt?
WO wurde Dir "ungefragt" ein Update eingespielt, ein Windows-Update oder eines für das Programm, welches wir nicht kennen?
Woher nimmst Du denn eigentlich die "alte" dll-Datei, womit es dann wieder laufen soll?
 
  • Gefällt mir
Reaktionen: areiland
Don_2020 schrieb:
Im Programmordner liegt die betreffende Dll nicht
Dann mal wie gesagt wirde dort rein kopieren und testen
 
Don_2020 schrieb:
Im Programmordner liegt die betreffende Dll nicht...
Dann macht es doch erst recht Sinn, die Dll dort abzulegen! Und wenn die in einer Ini vermerkt ist, könnte man dort ja auch zusätzlich den Programmordner als Speicherort nachtragen.
 
  • Gefällt mir
Reaktionen: aragorn92
Alte Datei kommt von der Install-CD.
Vor ca. 3 Monaten funktionierte noch alles. Im Internet findet sich ein Hinweis auf einfehlerhaftes Update (KB5065426).
Eine Neuinstallation bedeutet ca. 1 Tag arbeit, da nicht nur das eine Programm neu installieren muss. Es sind noch einige Erweiterungen zu installieren. Dazu sind die Lizenzen der alten Installation freizugeben und auf die neue Installation zu übertragen.
Ich hasse diese Arbeit.
 
Eins nach dem anderen. Zuerst würde ich den Tipp von areiland versuchen.

Update deinstallieren kann man notfalls dannach immernoch.
 
  • Gefällt mir
Reaktionen: areiland
Wenn sich der TE sicher ist, dann würde ich einfach via CMD die Datei ersetzen (Sicherheitskopie nicht vergessen :), sowas ist ne gute Möglichkeit Windows zu schrotten oder schöne Folgefehler zu platzieren)
Also Windows im Reparaturmodus und dann Eingabeaufforderung.

Aber wenn der letzte bekannte funktionierende Zustand der Applikation 3 Monate her ist, könnten ja auch andere Changes die Ursache sein.
 
  • Gefällt mir
Reaktionen: aragorn92 und areiland
@Baltimore
Doch in den erweiterten Startoptionen (WinRE) kann man sowas regeln. Es ist bloss unnötig.
 
Wird nicht funktionieren: Sísyphos lässt grüßen :freak:

"Der Windows-Ressourcenschutz hat beschädigte Dateien gefunden und erfolgreich repariert."
 
@Baltimore
Ich sag doch, es ist völlig unnötig! Es ist sogar noch weit schwieriger, weil Windows zu jedem Programm eine eigene Dll-Version vorhalten kann, diese SideBySide Konfiguration liegt aber komplett in WinSxS. Die Dll in SysWoW64 fungiert dann lediglich als Platzhalter, während die eigentlich benötigte Dll aus C:\Windows\WinSxs geladen wird.
 
Don_2020 schrieb:
Alte Datei kommt von der Install-CD.
Vor ca. 3 Monaten funktionierte noch alles. Im Internet findet sich ein Hinweis auf einfehlerhaftes Update (KB5065426).
Eine Neuinstallation bedeutet ca. 1 Tag arbeit, da nicht nur das eine Programm neu installieren muss. Es sind noch einige Erweiterungen zu installieren. Dazu sind die Lizenzen der alten Installation freizugeben und auf die neue Installation zu übertragen.
Ich hasse diese Arbeit.
Zu viel Arbeit, wen die Anwendung keine besondere GPU braucht übertrage die doch samt lizenz in eine Windows VM welcher du dan updates & co abdrehst, das läuft die anwendung ohne proleme bis zum sankn nimerleins tag,
 

Ähnliche Themen

Zurück
Oben