就上下文而言,我有一个运行过程的脚本,然后重新启动计算机,重新启动后需要递归删除一个目录。
是否可以通过使用“内置”Windows 10 命令(通过直接或内联调用)作为 runOnce 注册表项对中的注册表值来实现?
答案1
脚本可以在注册表中插入 RUNONCE 键,以便仅在特定用户重新启动或登录时执行一次操作。更新注册表需要管理员权限。
注册表项包括:
- 重启时:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
- 当前用户 :
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
要使 RunOnce 键仅在其任务成功运行时才被删除,请在键名称值前面添加感叹号!
。
如果您希望 RunOnce 命令即使在安全模式下也能运行,请在键名称值前面添加星号*
。
RunOnce 脚本不应该在注册表中插入新的 RunOnce 条目。
例子:
对于重启
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /v RunScript /t REG_SZ /d "\"C:\\setup\\script.cmd\""
对于当前用户(HKEY_CURRENT_USER)
reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v RunScript /t REG_SZ /d "\"C:\\setup\\script.cmd\"" /f
对于特定用户(HKEY_USERS)
reg add HKU\S-1-5-21-3492930481-2827506072-2794401122-1001\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v RunScript /t REG_SZ /d "\"C:\\setup\\script.cmd\"" /f
所有用户资料
FOR /D %%D IN ("C:\Users\*") DO IF EXIST "%%D\NTUSER.DAT" REG LOAD HKU\TEMP "%%D\NTUSER.DAT" && (reg add HKU\TEMP\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v Reg_Value /t REG_SZ /d Reg_Data /f & REG UNLOAD HKU\TEMP)