Удаление файла — доступ запрещен даже с / F

Я пытаюсь удалить исполняемый файл, но это не удается с ошибкой Доступ запрещен даже при добавлении /F , чтобы заставить его как del/F system.exe . Я использую командную строку с повышенными привилегиями.

Попытка удалить файл через проводник Windows дает следующее:

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

Изначально это не позволяло мне удалять записи; опция была неактивна. Я выполнил takeown/F C: ProgramData 994146 system.exe , удалил записи, добавил те, которые давали мне полные разрешения, и закрыл диалоговое окно. Ошибка не исчезла. Когда я повторно открыл дополнительные параметры безопасности, записи вернулись.

Родительская папка system.exe, 994146, полностью невидима в ProgramData. У меня есть «показать скрытые файлы» в ProgramData. Мне пришлось вручную ввести путь в адресной строке проводника Windows. Я также не уверен, как редактировать свойства 994146, так как я не могу выбрать его в иерархии файлов.


Заморозить плохие процессы:

  1. Загрузите и запустите Process Explorer (из Microsoft) от имени администратора
  2. в Параметры > VirusTotal.com menu enable Проверьте VirusTotal.com и примите лицензионное соглашение.
  3. Появится новый столбец с названием VirusTotal с номером например 0/57 . Первое число указывает, сколько сканеров вирусов считают процесс зараженным. Второе число указывает, сколько сканировал файл. 0/57 указывает на чистый процесс, а 19/57 указывает на то, что 19 сканеров считают, что процесс плохой.
  4. Для любых процессов, отмеченных как зараженные, щелкните правой кнопкой мыши и Приостановить (не убивать)
  5. После того, как все подозрительные процессы будут приостановлено, уничтожьте их по одному.
  6. Если какие-либо новые зараженные процессы появятся снова, приостановите их и не убивайте
  7. Измените права доступа к файлам для нежелательных исполняемый файл, чтобы восстановить полный доступ, затем удалите его.
  8. После того, как вы удалили файл, вам нужно немедленно перейти к сканированию вашего компьютера на наличие вредоносных программ.

Если это не сработает, потушите огонь:

  1. Загрузите и запустите Process Monitor (также от Microsoft ) и запустите от имени администратора.
  2. В меню Фильтр нажмите
  3. Создайте условие фильтра для соответствия вашему файлу следующим образом:
  4. Нажмите Добавить затем
  5. Измените разрешения для своего файла.
  6. Просмотрите выход. Вы увидите этот проводник . exe обращается к файлу (то есть вы меняете права доступа). Найдите любые другие процессы, которые касаются файла … скорее всего, последний процесс, который это сделал. Скорее всего, это ваш вредоносный процесс.
  7. Используйте Process Explorer, чтобы приостановить этот процесс (значение PID , отображаемое Process Monitor, также отображается Process Explorer )
  8. Попробуйте снова изменить разрешения/удалить файл

Это мой «chown.bat» (пользователи unix будут смеяться надо мной, используя это имя). Я собрал это из разных решений … Каждый раз, когда одно не работает, я добавляю новые вещи. Материал SetACL, который я обнаружил только в 2014 или 2015 году. Меня это ни разу не подводило:

  для/r% fn в (*. *) SetACL -on "% fn" -  ot file -actn clear -clr dacl, sacl takeown/F */R/DY icacls *. */T/C/grant YOURUSERACCOUNTNAMEHERE: (D, WDAC) icacls. /T/C/grant administrators: F Система: F все: F  

SetACL — это сторонняя утилита, которая должна быть у вас на пути.

3



Удаление файла, но доступ запрещен

У меня есть приложение mvc4 с entity framework.

Я хочу удалить файл, но каждый раз он говорит:

Исключение типа ‘System.UnauthorizedAccessException’ произошло в mscorlib.dll, но не было обработано в пользовательском коде

Дополнительная информация: Доступ к пути ‘G: Mijn Documents My Web Sites Lolabikes — Copy C # ContosoUniversity Images ‘ запрещен.

этой строкой : System.IO.File.Delete (path);

Это метод:

  public ActionResult DeleteFiles (int id) {// var fileName = Путь.GetFileName (id.FileName);  var DirSeparator = Path.DirectorySeparatorChar;  var path = Server.MapPath ("~ \ Images" + DirSeparator);//+ fileName.Replace ('+', '_')));  var file = db.lolabikerPhotos.Find (id);  System.IO.File.Delete (путь);  db.SaveChanges ();  return Redirect (Url.Action ("Edit", "Account") + "# tabs-3");  }  

Я просто запускаю приложение в Visual Studio, например: http://localhost: 41787/Account/Edit? UserId = hallo

Я уже сделал следующее:

Полный доступ к карте, я добавил сетевой сервис на карту с полным контролем. Но вроде ничего не работает. Я использую Windows 7. И я запускаю Visual Studio 2013 от имени администратора

Я также вижу это:

  ASP.NET не авторизован для доступа  запрашиваемый ресурс.  Рассмотрите возможность предоставления прав доступа к ресурсу удостоверению запроса ASP.NET.  ASP.NET имеет базовое удостоверение процесса (обычно {MACHINE}  ASPNET в IIS 5 или Network Service в IIS 6 и IIS 7, а также настроенное удостоверение пула приложений в IIS 7.5), которое используется, если приложение не олицетворяет. Если приложение олицетворяет себя через , удостоверением будет анонимный пользователь (обычно IUSR_MACHINENAME) или аутентифицированный пользователь запроса.  

Здесь вы можете увидеть доступ:

Я пробую что-то вроде этого:

        -> web>  

Я добавил это:

    

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

  Доступ к пути '  G:  Mijn Documents  My Web Sites  Lolabikes - Copy  C #  ContosoUniversity  Images  'запрещен  ред. Описание: Необработанное исключение произошло во время выполнения текущего веб-запроса.  Просмотрите трассировку стека, чтобы получить дополнительную информацию об ошибке и ее происхождении в коде.  Сведения об исключении: System.UnauthorizedAccessException: доступ к пути 'G:  Mijn Documents  My Web Sites  Lolabikes - Copy  C #  ContosoUniversity  Images ' запрещен.  ASP.NET не авторизован для доступа к запрошенному ресурсу.  Рассмотрите возможность предоставления прав доступа к ресурсу удостоверению запроса ASP.NET.  ASP.NET имеет базовое удостоверение процесса (обычно {MACHINE}  ASPNET в IIS 5 или сетевая служба в IIS 6 и IIS 7, а также настроенное удостоверение пула приложений в IIS 7.5), которое используется, если приложение не олицетворяет.  Если приложение олицетворяет себя через , удостоверением будет анонимный пользователь (обычно IUSR_MACHINENAME) или аутентифицированный пользователь запроса.  Чтобы предоставить ASP.NET доступ к файлу, щелкните файл правой кнопкой мыши в проводнике, выберите «Свойства» и выберите вкладку «Безопасность».  Нажмите «Добавить», чтобы добавить соответствующего пользователя или группу.  Выделите учетную запись ASP.NET и установите флажки для желаемого доступа. Ошибка источника: строка 489: var path = Server.MapPath ("~ \ Images" + DirSeparator);//+ fileName.Replace ('+',  '_'))); Строка 490: var file = db.lolabikerPhotos.Find (id);  Строка 491: System.IO.File.Delete (путь); Строка 492: db.SaveChanges ();  Строка 493:  

полное разрешение:

Вкладка «Дополнительно»:

Вкладка измененных разрешений:

Я отредактировал свой метод действия следующим образом:

  public ActionResult DeleteFiles (int id) {var fileName = Path.GetFileName (@  "\ Koala.jpg"); var DirSeparator = Path.DirectorySeparatorChar; var path = Server.MapPath (@ "\ Images" + DirSeparator + fileName.Replace ('+', '_')); var file = db  .lolabikerPhotos.Find (id); LolaBikePhoto lola = db.lolabikerPhotos.Find (id); db.lolabikerPhotos.Remove (lola); System.IO.File.Delete (путь); db.SaveChanges (); return Redirect (Url  .Action ("Edit", "Account") + "# tabs-3");}  

И теперь оно работает!


У меня тоже была проблема, поэтому я наткнулся на этот пост. Я добавил следующую строку кода до и после копирования/удаления.

Delete

  File.SetAttributes (файл, FileAttributes.Normal); File.Delete (файл);  

Копировать

  File.Copy (file, dest, true); File.SetAttributes (dest, FileAttributes.Normal);  

Основываясь на ответе — Fo Мне пришлось установить для папки и файлов внутри нее обычные атрибуты.

  DirectoryInfo directory = new DirectoryInfo ("/path/ в/файл ");  directory.Attributes = FileAttributes.Normal;  foreach (файл FileInfo в каталоге.GetFiles ()) {file.Attributes = FileAttributes.Normal;  }  

Оцените статью
clickpad.ru
Добавить комментарий