He estado buscando la forma más conveniente de decirle a Windows 10 que elimine ciertos archivos al reiniciar. Tener una opción de menú contextual al hacer clic derecho parece ser la solución más eficiente. Me encontré con las siguientes entradas de registro que me brindan esa opción, pero en Windows 10 x64 en realidad no elimina los archivos a los que la aplico.
[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\""
Aparentemente, este código de registro ha estado flotando en Internet durante mucho tiempo, y la información más actualizada que pude encontrar fue que alguien dijo que les funcionó en Windows 7. ¿Hay alguna manera de modificarlo para que funcione en Windows 10? ?
Gracias.
Respuesta1
Descargar SysInternalsMovefile.exey colóquelo en C:\Windows
la carpeta.
Haga clic derecho en Movefile.exe y haga clic en Propiedades. Seleccione la pestaña Compatibilidad, haga clic en "Cambiar configuración para todos los usuarios". Habilite "Ejecutar este programa como administrador". Haga clic en Aceptar, Aceptar.
Luego cree un archivo .REG como se muestra a continuación.
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\" \"\""
Haga doble clic en el archivo REG para aplicar la configuración.
Esto agrega la opción Eliminar al reiniciar en el menú contextual.
Respuesta2
Mi solución fue posible gracias a la ayuda de w32sh. La solución que comparto en esta respuesta es después de seguir primero sus instrucciones.
Al final, lo que terminé haciendo aquí fue combinar un comando para tomar posesión del archivo y usar movefile.exe en él.
Creé un archivo por lotes (lo llamé "movefile_custom.bat") con lo siguiente:
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 ""
(NOTA: La entrada del botón derecho solo funciona en archivos, por lo que la primera línea que maneja directorios probablemente sea innecesaria, pero la dejé por ahora de todos modos. No hace daño a nada)
luego descarguéConvertidor de BAT a EXEy lo usé para (lo adivinaste) convertir mi "movefile_custom.bat" en "movefile_custom.exe". El convertidor tiene una opción de administrador para el EXE.
Edité la entrada del registro para que apunte a mi nuevo archivo "movefile_custom.exe" en lugar del "movefile.exe" base.
Funciona muy bien ahora.
Respuesta3
Esta página describe cómo usar la Política de grupo para ejecutar scripts personalizados al apagar/reiniciar o al cerrar sesión:https://technet.microsoft.com/en-us/library/cc753404(v=ws.11).aspx
Lo he usado en el pasado en versiones anteriores de Windows, y aunque la página dice solo hasta Win 7/2012, sé que políticas similares también funcionan en 10. Apuesto a que esto también funcionaría.
También hay servicios de terceros que puede configurar para ejecutar un script al apagar/reiniciar, como SRVSTART (http://www.rozanski.org.uk/services), aunque no es muy sencillo en ese contexto y no es su propósito principal.