Почему я получаю "Отказано в доступе", когда у меня есть действующее разрешение на чтение?
Я не могу прочитать конкретный файл, хотя, насколько я могу судить, у меня есть права на чтение. Вот что показывает "Эффективный доступ":
Вот что Get-Acl
дает мне.
PS ...> Get-Acl .\HelloWorld.java | Format-List
Path : Microsoft.PowerShell.Core\FileSystem::I:\...\HelloWorld.java
Owner : ...\Admin
Group : G:S-1-5-21-4281937098-1570975092-1098596674-513
Access : ...\Admin Allow FullControl
Audit :
Sddl : O:S-1-5-21-3073128669-2165567304-4059943147-1001G:S-1-5-21-4281937098-1570975092-1098596674-513D:PAI(A;;FA;;;S-1-5-21-3073128669-2165567304-4059943147-1001)
Когда я пытаюсь открыть его в блокноте или даже просто скопировать из командной строки, я получаю сообщение об ошибке:
I:\...>copy HelloWorld.java C:\HelloWorld.java
Access is denied.
0 file(s) copied.
I:\...>more HelloWorld.java
Cannot access file I:\...\HelloWorld.java
Я вошел как Admin
а также cmd.exe
оболочка повышена (щелкнул правой кнопкой мыши и сделал "Запуск от имени администратора").
Обратите внимание, что это не было изначально SDDL_PROTECTED
, но я добавил это (через Windows GUI), чтобы убедиться, что не было унаследовано чего-то, что могло бы сбить с толку доступ. Затем я добавил ACE, чтобы дать администратору полный контроль. Этот диск раньше был системным диском для машины с Win7, но я пытаюсь прочитать его на машине с Win10.
1 ответ
Когда защита в порядке, могут возникнуть 2 другие проблемы
- слишком длинный путь: некоторым приложениям это не нравится (но вы получаете файл, который не найден, а не запрещен доступ): обходной путь: подключите диск на более низком уровне, используя
subst
и доступ отсюда - файл открывается в режиме записи другой программой / службой.
- Файл зашифрован с использованием встроенного в Windows шифрования. В этом случае он работает нормально на исходном компьютере, но когда вы монтируете диск где-то еще, вы получаете "доступ запрещен", даже если разрешения в порядке
Скорее всего, это вариант 3, так как вы переключили компьютеры.