![Windows 탐색기를 통해 파일을 삭제할 수 있지만 배치 파일을 통해서는 삭제할 수 없습니다.](https://rvso.com/image/1575986/Windows%20%ED%83%90%EC%83%89%EA%B8%B0%EB%A5%BC%20%ED%86%B5%ED%95%B4%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%82%AD%EC%A0%9C%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%A7%80%EB%A7%8C%20%EB%B0%B0%EC%B9%98%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%ED%86%B5%ED%95%B4%EC%84%9C%EB%8A%94%20%EC%82%AD%EC%A0%9C%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
/f 및 /q 플래그와 함께 "del" 명령을 사용하여 Windows(저는 Windows 7을 사용하고 있습니다) 배치 파일을 통해 네트워크 위치에서 파일을 삭제하려고 하면 "액세스가 거부되었습니다."라는 메시지가 표시됩니다. 메시지가 표시되고 파일은 삭제되지 않습니다. 그러나 Windows 탐색기를 통해 파일을 수동으로 삭제할 수 있습니다.
Windows 탐색기를 통해 수동으로 삭제하는 것과 동일한 권한을 사용해야 하는 개인 사용자 계정으로 배치 파일을 실행했습니다.
삭제하려는 파일에는 특별한 내용이 없습니다. 이는 자동화 코드 중 일부가 이 위치에서 파일을 삭제할 수 없음을 확인한 후 테스트용으로 만든 빈 텍스트 파일입니다.
이 문제는 하나의 특정 네트워크 공유에만 존재하며 다른 모든 위치에서는 문제 없이 Windows 배치 파일이 있는 파일을 삭제할 수 있습니다.
또한 배치 파일을 통해 문제 없이 해당 네트워크 위치에 텍스트 파일을 성공적으로 생성할 수 있습니다. "액세스가 거부되었습니다."라는 메시지를 표시하는 것은 삭제 명령일 뿐입니다. 문제.
내 계정은 문제의 폴더를 보유한 공유에는 액세스할 수 없지만 공유에 있는 폴더에는 액세스할 수 있는 그룹에 속해 있습니다. 이 네트워크 위치에 대한 보안이 설정되는 방식은 다음과 같습니다.
\\Server\Share\Folder1
\\Server\Share\Folder2
내 계정이 속한 그룹에는 Folder1 및 Folder2에 대한 "수정" 액세스 권한이 있지만 공유에는 액세스할 수 없습니다.
편집하다: 요청한 대로 문제의 명령줄은 다음과 같습니다.
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'에 대한 목록 디렉터리 액세스가 필요합니다.
네트워크 공유와 관련하여 얻을 수 있는 액세스는 공유에 대한 권한과 액세스 중인 개체에 대한 권한의 교차점입니다. 파일에서 쓰기를 허용하지만 공유에서 허용하지 않으면 쓸 수 없습니다.