4

У меня есть папка, которая была сгенерирована MSBuild, app.publish . Часто мой скрипт сборки не может удалить его, жалуясь, что у него нет необходимых разрешений. Сегодня я проверил это вне сценария сборки и обнаружил, что не могу даже открыть его.

Если я пытаюсь открыть его, я получаю это сообщение:

Ошибка доступа запрещена

"Местоположение не доступно. В доступе отказано."

Поэтому я попытался изменить разрешения, но даже не мог видеть, кто был владельцем, даже как администратор:

Настройки безопасности для папки

Тогда я подумал, что это может быть проблема с Explorer, поэтому я попытался из PowerShell. К сожалению, доступ там также запрещен. Я попытался использовать Get-ACE -Path app.publish , но он также отказался работать: «Доступ запрещен». Я также попробовал icacls app.publish /grant ijhbvhbv:f , но он тоже не удался и сказал «Доступ запрещен». Я попробовал обе эти команды и как мой обычный пользователь, и как администратор.

Наконец, я попытался удалить родительский каталог, но мне сказали, что мне нужно "предоставить администратору разрешение на удаление этой папки". Когда я это сделал, я получил любопытную ошибку: «Вам нужно разрешение от FWEE-ERIC-WIN8\ijhbvhbv, чтобы внести изменения в эту папку». «FWEE-ERIC-WIN8\ijhbvhbv» - моя собственная учетная запись. Так что кажется, что я действительно владелец папки, но только когда я пытаюсь взаимодействовать с ней как администратор.

Другие вопросы об этом в SU говорят о UAC как потенциальном источнике проблемы, но проблема одна и та же, независимо от того, на что установлен UAC.

2 ответа2

4

Потратив слишком много времени на подобную проблему, я понял это.

Это происходит с папками, которые:

  • Нет действительного владельца
  • Блокируются, потому что какое-то приложение все еще использует их.
  • В противном случае были удалены.

Папка находится в состоянии "зомби", поскольку она была удалена, но все еще используется некоторым процессом. Вам нужно найти процесс, который его использует, и закрыть его, или, если вы не знаете, что это такое, перезагрузить компьютер.

Вы останетесь без папки. Если целое поддерево было удалено, но использовалась только одна папка, вам может потребоваться вернуться и очистить поддерево вручную. Это должно работать с правами администратора.

2

Несколько возможностей для разрешения заблокированных файлов:

  1. Система или приложение блокирует ее; используйте инструмент, например CrystalRich LockHunter, чтобы узнать, что и, если хотите, разблокировать. Иногда необходимо перезагрузить компьютер, чтобы снять все блокировки, особенно если объект используется веб-сайтом.

  2. Установка разрешений для папки немного сложна; Есть несколько шагов. Посмотрите, как предоставить полные разрешения ....


Некоторые другие возможности:

  1. Некоторые "папки" на самом деле являются символическими ссылками, такими как C:\ProgramData\Application Data ; они недоступны. Однако, поскольку вы могли получить доступ к папке раньше, это кажется маловероятным.

  2. В последнее время MS начала использовать учетную запись TrustedInstaller , поэтому даже администратор не может касаться некоторых файлов и папок (хотя из вашего описания это, вероятно, не является причиной проблемы).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .