Verhindern, dass ein Programm Dateien in Windows löscht?

8

Ich habe ein ausführbares Programm (kein Quellcode), das temporäre Dateien in einem bestimmten Ordner erstellt und diese am Ende löscht. Ich habe Probleme mit dem Programm und möchte die temporären Dateien untersuchen, um festzustellen, ob ich etwas tun kann, ohne die Quelle zu ändern.

Gibt es eine Möglichkeit, das Löschen von Dateien durch das Programm oder alternativ das Löschen von Dateien in einem bestimmten Ordner durch alle Programme zu verhindern?

JoelFan
quelle
1
Warum nicht die Dateien untersuchen, während das Programm ausgeführt wird? Hält das Programm alle temporären Dateien, die es erstellt, gesperrt?
Joeqwerty
Es erstellt sie und löscht sie zu schnell
JoelFan

Antworten:

9

Sie können die ACL für den betreffenden Ordner so ändern, dass das Konto, auf dem die ausführbare Datei ausgeführt wird (höchstwahrscheinlich Sie ), dort Dateien erstellen, schreiben, bearbeiten, aber nicht löschen kann. Zwei Probleme:

  1. Sie würden natürlich möglicherweise das Programm zum Absturz bringen

  2. Anschließend müssen Sie die Kontrolle über den Ordner wiedererlangen (Eigentümer werden, alle Berechtigungen zurücksetzen usw.), um die Dateien löschen zu können

Izzy
quelle
4
+1 Bei NTFS-ACLs hat ein DenyEintrag Vorrang vor Allow. Sie können dem Verzeichnis einen Eintrag für Deny Deleteund / oder Deny Delete Subfolders/Filesfür hinzufügen Everyone. Wir tun dies häufig, um Extraktions- / Download-Dateien für die Softwareinstallation zu erfassen.
Jscott
3
@jscott: Von MS: Vererbte Verweigerungsberechtigungen verhindern nicht den Zugriff auf ein Objekt, wenn das Objekt einen expliziten Berechtigungseintrag zulassen hat. Explizite Berechtigungen haben Vorrang vor geerbten Berechtigungen, selbst geerbten Verweigerungsberechtigungen. technet.microsoft.com/en-us/library/cc736316(WS.10).aspx . Der Artikel ist alt, aber meines Wissens hat sich das Verhalten nicht geändert.
Joeqwerty
0

Da die Dateien erstellt werden, wird der Benutzer wie der Eigentümer der Dateien ausgeführt und kann sie löschen. Ich glaube, Sie können im Voraus nichts für NTFS CACLS im übergeordneten Verzeichnis konfigurieren.

Sie können versuchen, die Dateien in einem anderen Programm selbst zu öffnen, um festzustellen, ob dies das Löschen verhindert. Sie können auch versuchen, die Dateien zu kopieren und / oder zu verschieben, sobald sie in einem anderen Ordner erstellt wurden.

mfinni
quelle
1
Die Eigentümerschaft überschreibt nur eine Dateiberechtigung - die Möglichkeit, die ACLs des Objekts zu ändern. Sie können sich immer noch alles andere verweigern (einschließlich "Leseberechtigungen").
user1686
es sei denn natürlich, Sie haben dem Schöpfer die volle Kontrolle gegeben
Tony Roth