4

Я не могу удалить C:\Config.Msi\75ce84f.rbf .

  • это не только для чтения, системный или скрытый
  • он не используется другим процессом (согласно Process Explorer)
  • разрешения безопасности NT тоже не проблема - я владелец и у меня полный контроль; как двойная проверка, вкладка «Действующие разрешения» показывает, что у меня есть разрешение на удаление.

Тем не менее, попытка удаления файла дает "Доступ запрещен" как из Проводника, так и из cmd . Однако я могу переименовать его или переместить в другую папку на том же диске. Я также могу прочитать его, и Virustotal говорит, что он чистый, чего я и ожидал (это всего лишь временный файл установщика Windows - копия какой-то DLL, я думаю). Соответствующая строка из Process Monitor:

6:52:14.3726983 PM  112 Explorer.EXE    SetDispositionInformationFile   C:\Config.Msi\75ce84f.rbf   CANNOT DELETE   Delete: True    Write   1232

Предыстория: я использую XP SP2. Я недавно исправил установку Adobe Reader, чтобы вместо Foxit снова сделать его браузерным плагином по умолчанию. (кажется, нет никакого интерфейса, чтобы сделать это иначе?) Поэтому установщик сделал свое дело, а затем попросил перезагрузить компьютер. Как обычно, когда перезагрузка неудобна, я отклонил предложение и запустил pendmoves чтобы узнать, какие файлы установщик планировал переместить / удалить. Он хотел удалить два файла с расширением .rbf (файлы отката), расположенные в C:\Config.msi\ . (это относится к обоим, хотя я говорил об одном). Поэтому я попытался удалить их вручную и не смог.

У кого-нибудь есть идеи, что может помешать удалению? (и я не думаю, что это вредоносное ПО, хотя сейчас я не использую AV)

2 ответа2

2

Я понял, что происходит. Кажется, что вы можете переименовывать и перемещать (в пределах одного раздела) исполняемые файлы и библиотеки DLL, которые используются, но не могут их удалить. (когда была введена эта функция?) Это сбивает с толку две вещи: сообщение об ошибке ("Доступ запрещен", а не «он используется другим [процессом]»), и что перемещенные / переименованные модули по-прежнему перечислены под своими первоначальными именами в Process Explorer, который Вот почему я не мог использовать его, чтобы выяснить, какой процесс использует файлы. (это был Adobe Reader, который установщик не закрыл при выполнении своей работы)

Я хотел бы найти надлежащую (Microsoft) документацию относительно этого поведения. В Википедии есть параграф, который я нашел здесь:

Любой файл, который выполняется в компьютерной системе как программа (например, EXE, COM, DLL, CPL или другой двоичный формат файла программы), как правило, не допускается открытием файловой системы для доступа на запись или удаление, сообщая о нарушении совместного доступа Несмотря на то, что программа не открывается ни одним приложением. Тем не менее, некоторый доступ все еще разрешен. Например, файл запущенного приложения может быть переименован или скопирован (прочитан) даже при выполнении.

Microsoft упоминает DeleteFile

Функция DeleteFile завершается ошибкой, если приложение пытается удалить файл, открытый для обычного ввода-вывода, или как файл с отображением в памяти.

Последний предположительно включает загруженные исполняемые файлы / DLL.

У Microsoft также есть страница « Обновления библиотеки динамических ссылок », которая подразумевает такое поведение, но не документирует его должным образом.

1

Просто мысль - вы можете удалить его в безопасном режиме? Кроме того, когда вы переименовываете или перемещаете его, можете ли вы удалить его?

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