Как сделать так, чтобы в Windows 10 работала опция «Удалить при перезагрузке», вызываемая правой кнопкой мыши в контекстном меню?

Как сделать так, чтобы в Windows 10 работала опция «Удалить при перезагрузке», вызываемая правой кнопкой мыши в контекстном меню?

Я искал наиболее удобный способ указать Windows 10 удалять определенные файлы при перезагрузке. Наличие контекстного меню, вызываемого правой кнопкой мыши, кажется наиболее эффективным решением. Я наткнулся на следующие записи реестра, которые дают мне такую ​​возможность, но в Windows 10 x64 она на самом деле не удаляет файлы, к которым я ее применяю.

[HKEY_CLASSES_ROOT\*\shell\Delete on reboot\command]
@="CMD /E:OFF /C REG ADD HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\Currentversion\\RunOnce /v \"Del %1 OnNextReboot\" /d ^\"cmd.exe /c DEL /F /Q \\\"%1\\\"\" /f\""

[HKEY_CLASSES_ROOT\*\shell\Open]

[HKEY_CLASSES_ROOT\Folder\shell\Delete on reboot\command]
@="CMD /E:OFF /C REG ADD HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\Currentversion\\RunOnce /v \"Del %1 OnNextReboot\" /d ^\"cmd.exe /c RD /S /Q \\\"%1\\\"\" /f\""

Судя по всему, этот код реестра уже давно гуляет по Интернету, и самая свежая информация, которую мне удалось найти, заключается в том, что кто-то сказал, что у него это работает на Windows 7. Можно ли как-то изменить его, чтобы он работал на Windows 10?

Спасибо.

решение1

Загрузить SysInternalsMovefile.exeи поместите его в C:\Windowsпапку.

Щелкните правой кнопкой мыши Movefile.exe и нажмите Свойства. Выберите вкладку Совместимость, нажмите «Изменить параметры для всех пользователей» Включите «Запускать эту программу от имени администратора» Нажмите ОК, ОК.

Затем создайте файл .REG, как показано ниже.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\deleteonreboot]
@="Delete File on Reboot"

[HKEY_CLASSES_ROOT\*\shell\deleteonreboot\command]
@="\"C:\\Windows\\movefile.exe\" \"%1\" \"\""

Дважды щелкните REG-файл, чтобы применить настройки.

Это добавляет опцию «Удалить при перезагрузке» в контекстное меню.

решение2

Мое решение стало возможным благодаря помощи w32sh. Решение, которым я делюсь в этом ответе, — это после того, как я сначала выполнил его инструкции.

В конце концов, я пришел к решению объединить команду для получения права собственности на файл и использования movefile.exe для него.

Я создал пакетный файл (назвал его «movefile_custom.bat») со следующим содержимым:

takeown /f %1 /r /d y && icacls %1 /grant administrators:F /t
takeown /f %1 && icacls %1 /grant administrators:F
"C:\Windows\movefile.exe" %1 ""

(ПРИМЕЧАНИЕ: запись, вызываемая правой кнопкой мыши, работает только с файлами, поэтому первая строка, которая обрабатывает каталоги, вероятно, не нужна, но я все равно оставил ее на данный момент. Это ничему не повредит)

Затем я скачалКонвертер BAT в EXEи использовал его для (как вы уже догадались) преобразования моего "movefile_custom.bat" в "movefile_custom.exe". Конвертер имеет опцию администратора для EXE.

Я отредактировал запись реестра, чтобы она указывала на мой новый файл «movefile_custom.exe» вместо базового «movefile.exe».

Теперь работает отлично.

решение3

На этой странице описывается, как использовать групповую политику для запуска пользовательских сценариев при завершении работы/перезагрузке или выходе из системы:https://technet.microsoft.com/en-us/library/cc753404(v=ws.11).aspx

Я использовал его в прошлом на предыдущих версиях Windows, и хотя на странице указано, что он работает только до Win 7/2012, я знаю, что аналогичные политики работают и на 10. Держу пари, что и здесь так будет.

Существуют также сторонние службы, которые можно настроить для запуска скрипта при выключении/перезагрузке, например SRVSTART (http://www.rozanski.org.uk/services), хотя в данном контексте это не совсем просто и не является его основной целью.

Связанный контент