Найти в Дзене
Adr Asd

Не удаляемые файлы Windows и как защитить нужный файл от удаления.

Всем привет. _24.05.2025_ Маленькая заметка про атрибуты файлов и их разрешения. Эта тема у меня возникла - когда некий "неназванный" браузер, начал в наглую обновляться когда ему вздумается, что то качать, запускать свои процессы и орудовать на компе - когда ему вздумается. В настройках как понятно отключения автообновы нет. Сам браузер хорош, но поведение его - вызывающе ;-) Разумеется мириться с этим не стал и если в кратце - пройдя по нему отладчиками нужные места были исправлены и вроде порядок. Но - программа разумеется имеет возможности для скачивания и любые патчи самого кода не исключают возможность команд от производителя. И по этому - периодически, файл - "занимающийся обновой", автоматически заменялся вновь скачанным и автообновления нагло продолжались. И было решено изучить вопрос о правах на файлы и атрибутах в Windows_10 более подробно. Оказалось вопрос решается не сложно. Но для начала из далека. У вас должны быть права администратора в системе, что можно сделат

Всем привет. _24.05.2025_

Маленькая заметка про атрибуты файлов и их разрешения.

Эта тема у меня возникла - когда некий "неназванный" браузер, начал в наглую обновляться когда ему вздумается, что то качать, запускать свои процессы и орудовать на компе - когда ему вздумается. В настройках как понятно отключения автообновы нет. Сам браузер хорош, но поведение его - вызывающе ;-) Разумеется мириться с этим не стал и если в кратце - пройдя по нему отладчиками нужные места были исправлены и вроде порядок. Но - программа разумеется имеет возможности для скачивания и любые патчи самого кода не исключают возможность команд от производителя. И по этому - периодически, файл - "занимающийся обновой", автоматически заменялся вновь скачанным и автообновления нагло продолжались. И было решено изучить вопрос о правах на файлы и атрибутах в Windows_10 более подробно. Оказалось вопрос решается не сложно. Но для начала из далека.

У вас должны быть права администратора в системе, что можно сделать с правами пользователя, если честно - не проверял, может позже.

И так, первая часть "балета", если вам понадобилось провести какие то действия с файлами - на которые у вас нет прав. К примеру, для уменьшения размеров системы - можно пройтись по c:\Windows\WinSxS\ и применить к содержимому команду compact. Но перед этим - нужно стать владельцем папки WinSxS и его содержимого. (ACLs) Access Control Lists - списки управления доступом.

--- кусок cmd-скрипта с комментариями: ...

*остановка сервисов для освобождения блокированных файлов

sc stop msiserver

sc stop TrustedInstaller

sc config msiserver start= disabled

sc config TrustedInstaller start= disabled

*создание резервной копии разрешений (ACL) для всех файлов и папок в \WinSxS\ в файл WinSxS_NTFS.acl

icacls "%WINDIR%\WinSxS" /save "%WINDIR%\WinSxS_NTFS.acl" /t

*становимся владельцем всего в \WinSxS\ рекурсивно

takeown /f "%WINDIR%\WinSxS" /r

*разрешаем себе полный доступ ко всему в \WinSxS\

icacls "%WINDIR%\WinSxS" /grant "%USERDOMAIN%\%USERNAME%":(F) /t

*команда сжатия системных файлов ...

compact /c /i /a /f /q /s /exe:lzx "%WINDIR%\WinSxS\*.*"

*возвращаем папке WinSxS исходного владельца

icacls "%WINDIR%\WinSxS" /setowner "NT SERVICE\TrustedInstaller" /t

*восстанавливаем всему содержимому разрешения из резервной копии WinSxS_NTFS.acl

icacls "%WINDIR%" /restore "%WINDIR%\WinSxS_NTFS.acl"

*вернём параметры старта сервисов

sc config msiserver start= demand

sc config TrustedInstaller start= demand

(понятно - что с разрешением на файлы можно их и удалять)

-------------------------------------

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

В моём случае, создан файл заглушка (к примеру file_update.exe) и ему нужно установить такие разрешения и атрибуты - чтоб изменить их мог только я локально, а удалить файл было нельзя. Используем icacls - встроенная программа (команда) Windows.

file_update.exe - файл заглушка

fpath2 - путь к file_update.exe

--- кусок cmd-скрипта с комментариями: ...

*установим атрибут "только чтение"

attrib +R %fpath2%\file_update.exe

*сброс разрешений

icacls %fpath2%\file_update.exe /reset

*удаляем все наследования разрешений

icacls %fpath2%\file_update.exe /inheritance:r

*установим запрет на удаление,изменение,смену атрибутов

icacls %fpath2%\file_update.exe /deny "все":(DE,WO,RA,WA,WEA,WD)

-------------------------------------

Теперь, если всё сделано правильно, попытка удаления файла file_update.exe, приведёт к сообщению - что файл не может быть удалён.

-2

Ну и если нам понадобилось снять эту блокировку с файла:

-----------------------------------------

*восстановление доступа к файлу, сброс

icacls %fpath2%\file_update.exe /reset

*удалить атрибут "только чтение"

attrib -R %fpath2%\file_update.exe

---------------------------------------

И файл снова доступен для операций. Как то так. Полное описание команд из статьи смотрим в нэте. Надеюсь кому то было нужно.

Удачи, всем пока.