代码之家  ›  专栏  ›  技术社区  ›  Erik Tangen

卸载配置单元时发生拒绝访问错误

  •  0
  • Erik Tangen  · 技术社区  · 9 年前

    Windows 7批处理文件-我希望所有当前用户执行“runonce”

    • %1
    • %2 是值名称
    • %3 是值的数据
    REG LOAD HKU\TEMP "%1\NTUSER.DAT"
    REG ADD HKU\TEMP\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v %2 /t REG_SZ /d %3 /f
    REG UNLOAD HKU\TEMP
    

    reg unload 执行。 我以管理员身份运行,以本地管理员身份登录。

    你能提供一个简单的解决方案吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Compo    9 年前

    有一种可能性是 Reg UnLoad 可以尝试在新数据添加完成之前运行。我添加了一个 Timeout

    @Echo Off
    Set "RKL=SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce"
    Set "RKV=%~1"
    Set "RKD=%~2"
    Set "RKP=Temp"
    
    For /F "UseBackQTokens=1*Delims==" %%A In (`WMIC Path Win32_UserProfile Where^
     "Loaded!='True' And Special!='True'" Get LocalPath /Value 2^>Nul`
    ) Do For %%C In ("%%B") Do (
        Reg Load "HKU\%RKP%" "%%~C\NTUSER.DAT"
        Timeout 2 /NoBreak>Nul
        Reg Add "HKU\%RKP%\%RKL%" /V "%RKV%" /D "%RKD%" /F>NUL
        Timeout 2 /NoBreak>Nul
        Reg UnLoad "HKU\%RKP%"
    )
    

    要使用上述代码,请更换 %~1 %~2 使用之前作为发送的非双引号字符串 %2 %3