Eine Datei kann nicht gelöscht oder ein Ordner auf einem NTFS-Datei Systemvolume


Wenn Sie weiterhin Sicherheitsupdates für Windows erhalten möchten, vergewissern Sie sich, dass auf Ihrem Computer Windows XP mit Service Pack 3 (SP3) ausgeführt wird. Weitere Informationen finden Sie auf dieser Microsoft-Website: die Unterstützung endet für einige Versionen von Windows

EINFÜHRUNG


Dieser Artikel beschreibt, warum Sie möglicherweise nicht auf eine Datei oder einen Ordner auf einem NTFS-Volume löschen und verschiedene Ursachen dieses Problems.

Weitere Informationen


Hinweis Intern behandelt NTFS Ordner als eine besondere Art von Datei. Daher gibt das Wort "Datei" in diesem Artikel entweder eine Datei oder einen Ordner.

Ursache 1: Die Datei verwendet ACL

Sie können keine Datei löschen, wenn die Datei eine Zugriffssteuerungsliste (ACL) verwendet. Um dieses Problem zu beheben, ändern Sie die Berechtigungen für die Datei. Sie müssen Dateien die Berechtigungen ändern zu übernehmen.Administratoren haben implizit die Berechtigung, eine Datei übernehmen, auch wenn sie nicht explizit Berechtigungen für die Datei verfügen. Dateibesitzer haben implizit die Berechtigung, Dateiberechtigungen zu ändern, selbst wenn ihnen nicht explizit Berechtigungen für die Datei gewährt. Daher müssen Sie den Besitz einer Datei, erteilen Sie Berechtigungen zum Löschen der Datei, und löschen Sie die Datei.

Sie können bestimmte Sicherheitsprogramme anzeigen oder Berechtigungen ändern, da die Datei eine nicht-kanonische ACL hat verwenden

Um dieses Problem zu umgehen, verwenden Sie ein anderes Werkzeug (z. B. einen späteren Build von Cacls.exe).Die Zugriffssteuerungseinträge (ACEs) in einer ACL haben je nach Typ eine bestimmte bevorzugte Reihenfolge. Beispielsweise kommen ACEs, die normalerweise den Zugriff verweigern vor ACEs, die Zugriff gewähren. Verhindert jedoch nichts eine Programm schreiben eine ACL, die ACEs in beliebiger Reihenfolge. In einigen früheren Versionen von Windows traten Probleme auf, wenn Microsoft Windows versuchte, diese "nicht-kanonischen" ACLs zu lesen. Manchmal können Sie diese ACLs ordnungsgemäß durch Ändern im Microsoft Windows Explorer grafisch Sicherheits-Editor. Dieses Problem wurde in späteren Windows-Versionen behoben. Wenn dieses Problem auftritt, verwenden Sie die neueste Version von Cacls.exe. Auch wenn Sie anzeigen oder bearbeiten an, können Sie eine neue ACL schreiben, die Sie auf die Datei zugreifen können.

Ursache 2: Die Datei wird verwendet

Sie können keine Datei löschen, wenn die Datei verwendet wird. Um dieses Problem zu beheben, bestimmen Sie den Prozess mit dem offenen Handle, und schließen Sie diesen Prozess.Je nachdem, wie die Datei geöffnet ist (z. B. ist für exklusiven oder gemeinsamen Zugriff öffnen) möglicherweise nicht in eine Datei verwendet wird. Sie können eine Vielzahl von Tools um die Prozesse zu ermitteln, die offene Handles auf Dateien haben, jederzeit.Weitere Informationen zu Tools für die Prozesse, die offene Handles auf Dateien haben, klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base: 
242131 Eine Liste der Prozesse angezeigt, die Dateien öffnen 
Die Symptome dieses Problems können variieren. Möglicherweise den Befehl Delete löschen eine Datei verwenden, aber die Datei nicht tatsächlich erst den Prozess geöffneten Datei-Versionen die Datei gelöscht. Darüber hinaus möglicherweise nicht auf das Dialogfeld Sicherheit für eine Datei, die Löschung ansteht. Um dieses Problem zu beheben, bestimmen Sie den Prozess mit dem offenen Handle, und schließen Sie diesen Prozess.

Ursache 3: Dateisystems die Datei verhindert den Zugriff auf

Sie können möglicherweise nicht die Datei löschen, wenn das Dateisystem beschädigt ist. Führen Sie zum Beheben dieses Problems das Dienstprogramm Chkdsk auf dem Datenträger auf Fehler zu beheben.Fehlerhafte Sektoren auf dem Datenträger, sonstige beschädigte Hardware oder Softwarefehler können das Dateisystem beschädigen und Dateien verursachen. Normalen Betrieb können auf vielfältige Weise fehlschlagen. Wenn das Dateisystem eine Beschädigung entdeckt, protokolliert ein Ereignis im Ereignisprotokoll und i. d. r. eine Meldung Sie Chkdsk ausführen. Je nach Art der Beschädigung Chkdsk kann oder möglicherweise Daten wiederherstellen. Chkdsk gibt jedoch das Dateisystem in einen konsistenten Zustand. Weitere Informationen zur Verwendung des Dienstprogramms Chkdsk finden Sie in den folgenden zu Artikeln der Microsoft Knowledge Base:
176646 Fehlermeldung: die Datei oder das Verzeichnis ist beschädigt. 
187941 Erläuterung zu CHKDSK und den neuen Optionen/c und/i 

Ursache 4: Dateien in Pfaden, die Tiefe MAX_PATH überschreitet sind vorhanden

Sie können nicht öffnen, bearbeiten oder löschen, wenn Probleme mit dem Dateipfad.

Lösung 1: Verwenden eines automatisch generierten 8.3-Namens für den Dateizugriff

Um dieses Problem zu beheben, sollten Sie den automatisch generierten 8.3-Namens für die Datei verwenden. Diese Auflösung kann die einfachste Lösung sein, wenn der Pfad tief ist, da die Ordnernamen zu lang sind. Gehen Sie Wenn der 8.3-Pfad ebenfalls zu lang ist oder 8.3-Namen auf dem Volume deaktiviert worden sind, zu Lösung 2. Weitere Informationen zur Deaktivierung von 8.3-Dateinamen auf NTFS-Volumes klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:
121007 Zum Deaktivieren der Erstellung 8.3 auf NTFS-Partitionen 

Lösung 2: Umbenennen oder Verschieben eines tiefen Ordners

Benennen Sie den Ordner, so dass die Zieldateien mit einer größeren Tiefe als MAX_PATH nicht mehr vorhanden. Wenn Sie dies tun, beginnen mit dem Stammordner (oder einer anderen geeigneten Stelle) und benennen Sie die Ordner so, dass sie kürzere Namen haben. Wenn dieser Schritt nicht behebt dieses Problem (z. B. eine Datei mehr als 128 Ordner tief liegt), fahren Sie mit Lösung 4.

Lösung 3: Ein Ordner in der Struktur des Pfads ein Laufwerk zuordnen

Ordnen Sie ein Laufwerk, einen Ordner innerhalb der Pfadstruktur der Zieldatei oder des Ordners. Diese Methode wird den virtuellen Pfad verkürzt.Angenommen Sie, Sie haben einen Pfad, der folgendermaßen strukturiert ist:
\\ServerName\SubfolderName1\SubfolderName2\SubfolderName3\SubfolderName4\...
In diesem Pfad ist die Anzahl der insgesamt Zeichen über 255. Um die Länge des Pfads um 73 Zeichen kurz ordnen Sie SubfolderName4 ordnen Sie ein Laufwerk zu.

Lösung 4: Verwenden einer Netzwerkfreigabe mit derselben Tiefe wie der Ordner

Wenn Lösung 1, 2 und 3 nicht praktisch oder das Problem nicht beheben, erstellen Sie eine Netzwerkfreigabe, die tief in der Ordnerstruktur, und benennen Sie die Ordner auf der Freigabe.

Lösung 5: Verwenden Sie eine Tool, die Tiefe Pfade durchsuchen kann

Viele Windows-Programme erwarten, dass die maximale Pfadlänge kürzer als 255 Zeichen. Diese Programme reservieren daher nur genügend internen Speicher um normale Pfade zu behandeln. NTFS hat diese Einschränkung nicht und es kann viel mehr Pfade.Sie können dieses Problem auftreten, wenn Sie eine Freigabe irgendwann in der Ordnerstruktur erstellen, die bereits ziemlich tief ist und über diese Freigabe eine Tiefe Struktur unter diesem Punkt erstellen. Einige Tools, die lokal die Ordnerstruktur bearbeiten möglicherweise nicht die gesamte Struktur ausgehend vom Stammordner durchsuchen. Möglicherweise müssen diese Tools auf besondere Weise verwenden, damit sie die Freigabe durchsuchen können. (Die CreateFile-API-Dokumentation beschreibt eine Methode, um in dieser Situation die gesamte Struktur durchlaufen.)Normalerweise können Sie Dateien verwalten, mithilfe der Software, die sie erstellt. Haben Sie eine Programm, die Dateien, die einer größeren als MAX_PATH Tiefe erstellen kann, in der Regel können Sie das gleiche Programm zu löschen oder zu bearbeiten. Sie können in der Regel Dateien, die auf einer Freigabe über dieselbe Freigabe erstellt werden.

Ursache 5: Der Dateiname enthält einen reservierten Namen im Win32-Namespace

Wenn der Dateiname einen reservierten Namen (z. B. "lpt1") im Win32-Namespace enthält, löschen Sie die Datei möglicherweise nicht. Verwenden Sie zum Beheben dieses Problems ein nicht-Win32-Programm die Datei umbenennen. Sie können ein POSIX-Programm oder ein anderes Programm, das die geeignete interne Syntax verwendet die Datei verwenden.Außerdem können Sie möglicherweise einige integrierte Befehle mit normalen Win32-reservierte Namen überprüft umgehen, wenn Sie eine bestimmte Syntax verwenden, um den Pfad der Datei angeben. Beispielsweise verwenden Sie den Befehl Del in Windows XP können Sie löschen eine Datei namens "lpt1", wenn Sie den vollständigen Pfad der Datei mit folgender spezieller Syntax angeben:
del \\?\c:\Pfad\lpt1
Weitere Informationen zum Löschen von Dateien mit reservierten Namen unter Windows NT und Windows 2000 klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base: 
120716 Entfernen von Dateien mit reservierten Namen in Windows 
Weitere Informationen zum Löschen von Dateien mit reservierten Namen unter Windows XP klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base: 
315226 Entfernen von Dateien mit reservierten Namen in Windows XP 
Öffnen ein Handle für eine Datei mit normalen Win32-CreateFile Mechanismus sind bestimmte Dateinamen alten DOS-Geräte vorbehalten. Aus Kompatibilitätsgründen diese Namen sind nicht zulässig und kann nicht mithilfe der normalen Win32-Datei Aufrufe erstellt werden. Dieses Problem ist jedoch keine Einschränkung von NTFS.Möglicherweise ein Win32-Programm verwenden, um die Überprüfung der Regel umgehen, die ausgeführt werden, wenn eine Datei erstellt (gelöscht oder ist) das gleiche Verfahren verwenden, um Ordner zu durchsuchen, die einer größeren als MAX_PATH Tiefe. Darüber hinaus sind einige POSIX nicht diesen Namen überprüft.

Ursache 6: Der Dateiname enthält einen ungültigen Namen in Win32-Namespace

Sie möglicherweise nicht zum Löschen einer Datei der Dateinamen enthält einen ungültigen Namen (z. B. ein Leerzeichen oder einen Punkt ist oder der Dateiname besteht nur aus einem Leerzeichen). Um dieses Problem zu beheben, verwenden Sie eine Tool, die die geeignete interne Syntax verwendet, um die Datei zu löschen. Sie können die "\\? \" Syntax einige Tools für diese Dateien arbeiten:
del "\\?\c:\Pfad zur Datei mit abschließendem "
Ursache 4 ähnelt die Ursache des Problems. Jedoch wenn Sie eine Datei öffnen, die Leerzeichen oder nachgestellte Punkte im Namen normalen Win32-Syntax verwenden, werden nachgestellte Leerzeichen oder Punkte entfernt, bevor die eigentliche Datei. Aus diesem Grund haben Sie zwei Dateien im gleichen Ordner namens "AFile.txt" und "AFile.txt" (Beachten Sie das Leerzeichen nach dem Dateinamen), wenn Sie versuchen, die zweite Datei mit standard-Win32-Aufrufen zu öffnen, öffnen Sie die erste Datei. Auch wenn Sie eine Datei, deren Name ist "" (Leerzeichen) und versuchen, sie mit standard-Win32-Aufrufen zu öffnen, öffnen Sie stattdessen die übergeordneten Ordner der Datei. In diesem Fall beim Ändern von Sicherheitsrichtlinien für diese Dateien entweder möglicherweise nicht möglich, oder auf andere Dateien kann unerwartet ändern. Wenn dieses Verhalten auftritt, können Sie denken, dass Sie auf eine Berechtigung, die tatsächlich eine restriktive ACL hat.

Kombinationen von Ursachen

Manchmal können Kombinationen dieser Ursachen auftreten, die was das Verfahren zum Löschen einer Datei machen. Z. B. Wenn Sie als Administrator des Computers anmelden, treten möglicherweise eine Kombination aus Ursache 1 (Sie sind nicht berechtigt, eine Datei zu löschen) und Ursache 5 (der Dateiname enthält ein abschließendes Zeichen, Zugriff auf ein anderes umgeleitet wird, oder Datei vorhanden) und Sie möglicherweise nicht die Datei löschen. Wenn Sie versuchen, Ursache 1 zu beheben, durch den Besitz der Datei übernehmen und Berechtigungen hinzufügen, können Sie weiterhin nicht möglicherweise die Datei löschen, da der ACL-Editor der Benutzeroberfläche wegen Ursache 6 die entsprechende Datei zugreifen kann.In diesem Fall können Sie das Dienstprogramm "Subinacl" mit deronlyfile (dieses Programm ist im Resource Kit enthalten) Eigentümer ändern und Berechtigungen für eine Datei, auf die sonst nicht zugegriffen werden, beispielsweise:
Subinacl/onlyfile "\\?\c:\Pfad zur problematischen Datei" / setowner =Domäne\ Administrator/GRANT =Domäne\Administrator= F
Hinweis Dieser Befehl ist eine einzige Befehlszeile, die zur besseren Lesbarkeit umgebrochen wurde.Diese Beispielbefehlszeile ändert die C:\Pfad zur problematischen Datei Datei, ein Leerzeichen enthält, damit dieDomäne\Administratorkonto ist der Besitzer der Datei und dieses Konto Vollzugriff auf die Datei. Sie können diese Datei nun über den Befehl Del mit derselben Syntax "\\?\" löschen.