Kann eine Datei über den Windows Explorer löschen, aber nicht über eine Batchdatei

Kann eine Datei über den Windows Explorer löschen, aber nicht über eine Batchdatei

Wenn ich versuche, eine Datei von einem Netzwerkspeicherort über eine Batchdatei von Windows (ich verwende Windows 7) mit einem „del“-Befehl mit den Flags /f und /q zu löschen, wird mir die Meldung „Zugriff verweigert“ angezeigt und die Datei wird nicht gelöscht. Ich kann die Datei jedoch erfolgreich manuell über den Windows Explorer löschen.

Ich habe die Batchdatei mit meinem persönlichen Benutzerkonto ausgeführt, das dieselben Berechtigungen wie das manuelle Löschen über den Windows Explorer verwenden sollte.

Die Datei, die ich zu löschen versuche, hat nichts Besonderes an sich. Es handelt sich um eine leere Textdatei, die ich zu Testzwecken erstellt habe, nachdem mir aufgefallen war, dass ein Teil unseres Automatisierungscodes keine Dateien von diesem Speicherort löschen konnte.

Dieses Problem tritt nur auf einer bestimmten Netzwerkfreigabe auf. An allen anderen Speicherorten kann ich Dateien problemlos mit Windows-Batchdateien löschen.

Darüber hinaus kann ich über eine Batchdatei problemlos eine Textdatei am betreffenden Netzwerkspeicherort erstellen. Nur der Löschbefehl verursacht bei mir das Problem „Zugriff verweigert.“.

Mein Konto gehört zu einer Gruppe, die keinen Zugriff auf die Freigabe hat, in der sich der betreffende Ordner befindet, aber Zugriff auf den Ordner in der Freigabe hat. Die Sicherheit für diesen Netzwerkstandort ist wie folgt eingerichtet:

\\Server\Share\Folder1
\\Server\Share\Folder2

Die Gruppe, in der sich mein Konto befindet, hat „Änderungs“-Zugriff auf Ordner1 und Ordner2, aber nicht auf „Freigeben“.

Bearbeiten: Die betreffende Befehlszeile, wie angefordert:

del \\Server\Share\Folder\TEST_FILE.txt /F /Q

Kennt jemand ein Netzwerk-/Sicherheitsphänomen, das dieses Problem verursachen könnte, und wie kann ich es beheben?

Antwort1

Ich bin nicht sicher, warum dies passiert, aber ich vermute, dass der delBefehl UNC-Pfadnamen nicht richtig unterstützt.

Ich konnte dies problemlos reproduzieren und der Fehler verschwand, als ich ein zugeordnetes Laufwerk verwendete:

del \\share\folder\file.txt
:: got an error 'Access denied'

net use Z: \\share\folder
del Z:\file.txt
:: file deleted successfully

Seltsamerweise funktionierten andere Befehle. Ich konnte beispielsweise ein Unterverzeichnis erstellen, die Datei dorthin verschieben und dann das Unterverzeichnis löschen:

mkdir \\share\folder\trash
move \\share\folder\file.txt \\share\folder\trash
rmdir /s /q \\share\folder\trash

Antwort2

Der Befehl „del \y\x“ sucht in „y“ nach allen Dateien, die mit „x“ übereinstimmen, daher benötigen Sie Listenverzeichniszugriff auf „y“.

Bei Netzwerkfreigaben ergibt sich der Zugriff, den Sie erhalten, aus der Schnittmenge der Berechtigungen für die Freigabe und für das Objekt, auf das Sie zugreifen. Wenn Ihnen eine Datei das Schreiben erlaubt, die Freigabe dies jedoch nicht tut, können Sie nicht schreiben.

verwandte Informationen