Kann eine Datei über den Windows-Explorer aber nicht über die Batch-Datei löschen

977
roger21

Beim Versuch, eine Datei von einem Netzwerkspeicherort über Windows (ich bin unter Windows 7) zu löschen, und zwar mit einem "del" -Befehl mit / f und / q-Flags, wird ein "Zugriff verweigert" angezeigt. Nachricht und die Datei wird nicht gelöscht. Ich kann die Datei jedoch manuell über den Windows-Explorer löschen.

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

Die Datei, die ich löschen möchte, ist nichts Besonderes. Es handelt sich um eine leere Textdatei, die ich zum Testen erstellt habe, nachdem mir aufgefallen ist, dass einige unserer Automatisierungscodes keine Dateien von diesem Speicherort löschen konnten.

Dieses Problem ist nur auf einer bestimmten Netzwerkfreigabe vorhanden. An allen anderen Speicherorten kann ich Dateien mit Windows-Batchdateien ohne Probleme löschen.

Außerdem kann ich erfolgreich eine Textdatei am fraglichen Netzwerkpfad über eine Batchdatei erstellen. Es ist nur der Löschbefehl, der mir "den Zugriff verweigert" gibt. Problem.

Mein Konto befindet sich in einer Gruppe, die keinen Zugriff auf die Freigabe hat, die den betreffenden Ordner enthält, aber Zugriff auf den Ordner in der Freigabe. Die Einrichtung der Sicherheit für diesen Netzwerkstandort ist wie folgt:

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

Wo die Gruppe, in der sich mein Konto befindet, Zugriff auf "Ordner1" und "Ordner2" hat, jedoch nicht auf "Freigeben".

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

1
Können Sie alle oder zumindest den wichtigen Teil Ihrer BAT-Datei freigeben? YetAnotherRandomUser vor 5 Jahren 3

2 Antworten auf die Frage

2
Berend

Ich bin nicht sicher, warum dies geschieht, aber ich vermute, dass der delBefehl UNC-Pfadnamen nicht ordnungsgemäß unterstützt.

Ich konnte das leicht 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. Zum Beispiel könnte ich 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 
Wow, das hat tatsächlich für mich funktioniert. Sehr seltsam, dass ich dieses Problem nur auf einer Netzwerkfreigabe habe, aber wenn es funktioniert, funktioniert es. Vielen Dank! roger21 vor 5 Jahren 3
-1
dave

Mit dem Befehl 'del \ y \ x' wird in 'y' nach allen Dateien gesucht, die mit 'x' übereinstimmen. Daher benötigen Sie Zugriff auf Listenverzeichnisse für 'y'.

In Bezug auf Netzwerkfreigaben ist der Zugriff die Schnittmenge der Berechtigungen für die Freigabe und das Objekt, auf das Sie zugreifen. Wenn eine Datei das Schreiben zulässt, die Freigabe jedoch nicht, können Sie nicht schreiben.

Danke für die Antwort, möchte einige Dinge klären. Wenn Sie sagen, ich brauche "Listenverzeichnis-Zugriff auf y", wenn ich \ x-Verzeichnisinhalt im Windows-Explorer sehen kann, bedeutet das, dass ich diesen Zugriff habe? Zweitens: Wenn ich die Datei manuell erstellen und manuell schreiben kann, bedeutet das nicht, dass ich Zugriff auf das Objekt im Zugriff habe? roger21 vor 5 Jahren 4