
當嘗試使用帶有 /f 和 /q 標誌的“del”命令透過 Windows(我在 Windows 7 上)批次檔從網路位置刪除檔案時,我看到「存取被拒絕」。訊息,並且檔案不會被刪除。不過,我可以透過Windows資源管理器手動成功刪除該檔案。
我一直在使用我的個人使用者帳戶運行批次文件,該帳戶應該使用與透過 Windows 資源管理器手動刪除相同的權限。
我試圖刪除的文件沒有什麼特別的,它是一個空白文字文件,是我在註意到我們的一些自動化程式碼無法從該位置刪除文件後創建的用於測試的文件。
此問題僅存在於一個特定的網路共用上,在所有其他位置,我可以毫無問題地刪除具有 Windows 批次檔的檔案。
此外,我可以透過批次文件在相關網路位置成功建立文字文件,不會出現任何問題。只是刪除命令給了我「訪問被拒絕」的訊息。問題。
我的帳戶所在的群組無權存取包含相關資料夾的共用,但有權存取共用上的資料夾。此網路位置的安全設定方式如下:
\\Server\Share\Folder1
\\Server\Share\Folder2
我的帳戶所在的群組具有對資料夾 1 和資料夾 2 的「修改」存取權限,但沒有共用權限。
編輯: 根據要求,有問題的命令列:
del \\Server\Share\Folder\TEST_FILE.txt /F /Q
有誰知道可能導致此問題的任何網路/安全現象,以及如何解決它?
答案1
我不確定為什麼會發生這種情況,但我懷疑該del
命令不正確支援 UNC 路徑名。
我可以輕鬆地重現這一點,當我使用映射驅動器時,錯誤消失了:
del \\share\folder\file.txt
:: got an error 'Access denied'
net use Z: \\share\folder
del Z:\file.txt
:: file deleted successfully
奇怪的是,其他命令確實有效。例如,我可以建立一個子目錄,將檔案移到那裡,然後刪除該子目錄:
mkdir \\share\folder\trash
move \\share\folder\file.txt \\share\folder\trash
rmdir /s /q \\share\folder\trash
答案2
命令「del \y\x」在「y」中搜尋與「x」相符的所有文件,因此您需要對「y」進行清單目錄存取。
對於網路共享,您獲得的存取權限是共享權限和您正在存取的物件的權限的交集。