Frage

Ich habe einen Windows-Dienst, die unser Produkt-Updates. Es kopiert die Produktdateien in ein temporäres Verzeichnis, in der Regel „C: \ Windows \ Temp“, Patches die Binärdateien und verwendet dann MoveFileEx die Dateien wieder in das Installationsverzeichnis auf einem Neustart zu kopieren, in der Regel „C: \ Programme \ Produkt “. Die Dateien im Installationsverzeichnis erben ihre Sicherheitsattribute aus dem übergeordneten Ordner. Nach der Kopie, Patch- und Neustart, fehlen die Dateien im Installationsverzeichnis einige ACLs. Insbesondere die Dateien für die Gruppe Benutzer nicht mehr die ACL haben, so dass Benutzer das Programm nicht mehr nach dem Neustart ausgeführt werden.

Kann mir jemand erklären, was los hier? Es scheint, dass aus dem Installationsverzeichnis in das temporäre Verzeichnis kopiert wird, die Dateien die ACLs des temporären Verzeichnis erben. Auf der MoveFileEx / Reboot, obwohl, erben die Dateien nur die ACLs, dass sowohl die Installation und temporäre Verzeichnisse gemeinsam haben.

War es hilfreich?

Lösung

In Windows, wenn Sie eine Datei die Datei übernimmt die ACLs des Zielverzeichnisses kopieren. Wenn Sie eine Datei die ACL bewegen geht damit einen zwingenden es aus diesem Verzeichnis erben könnte. Ich bin mir nicht sicher, wie MoveFileEx möglicherweise anders auf einer Datei arbeiten.

Das temporäre Verzeichnis wird in der Regel unter dem Benutzerprofil (beide% TMP% und% TEMP% in der Regel hier Punkt) gelegen, so dass das Kopieren von Dateien hier hat Berechtigungen für diesen Benutzer. diese Dateien in das Programmdateiverzeichnis Umzug dauert nur, dass die Nutzer Rechte mit ihnen und deshalb nur runnable durch den installierenden Benutzer.

Andere Tipps

Eine mögliche Abhilfe ist, Kopien der Dateien in mit-dem gleichen Verzeichnis, aber mit unterschiedlichen Namen patchen. Nach dem Neustart könnten die gepatchten Versionen ausgetauscht werden. Alternativ zunächst einen Neustart machen und sie dann an Ort und Stelle flicken, und sie nur in das temporäre Verzeichnis für den Fall erforderlich, ein manuelles Rollback sichern.

Wenn Sie wirklich wollen, sie an einen anderen Ort zu bewegen, einen temporären Ordner an der gleichen Stelle zu schaffen, da die Dateien die Berechtigungen gleich bleiben würde helfen, gepatcht werden unter der Annahme, das Verzeichnis geerbten Berechtigungen verwendet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top