我一直在寻找最方便的方法来告诉 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
下载 SysInternals移动文件工具并将其放入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,但我知道类似的策略也适用于 Win 10。我敢打赌这个也会有效。
您还可以配置第三方服务以在关机/重启时运行脚本 - 例如 SRVSTART (http://www.rozanski.org.uk/services),尽管在这种情况下它不是非常简单,而且这也不是它的主要目的。