Я искал наиболее удобный способ сказать 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?

Спасибо.

3 ответа3

1

Загрузите файл SysInternals Movefile.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, чтобы применить настройки.

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

1

Мое решение стало возможным благодаря помощи 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 Converter и использовал его (как вы уже догадались), чтобы преобразовать мой файл «movefile_custom.bat» в «movefile_custom.exe». В конвертере есть опция администратора для EXE.

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

Отлично работает сейчас.

0

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

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

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

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