通过批处理文件更改其他用户的注册表

时间:2013-12-18 15:05:35

标签: c# windows batch-file

是否可以从其他管理员帐户更改其他用户HKCU注册表?

我的工作流程是:

  1. 在管理员帐户上安装软件。
  2. 安装会创建用户“CustomUser”
  3. 我需要为此用户设置一些注册表项...
  4. 我可以通过命令在ProfileList中创建注册表项:

    %windir%\System32\runas.exe /profile /user:domain\%targetUser% logonui.exe
    

    但这不会在HKEY_USERS

    中创建目标键

    我还尝试通过C#中描述的模拟:http://www.codeproject.com/Articles/124981/A-Complete-Impersonation-Demo-in-C-NET

    但是这一行会引发异常:Boolean loadSuccess = LoadUserProfile(tokenDuplicate, ref profileInfo);

    对我来说,理想的方法是在批处理文件中更改注册表。

1 个答案:

答案 0 :(得分:2)

预先确定'CustomUser'SID并通过HKU路径访问它,直接将reg.exe / add命令解析到配置文件。

示例SID

HKEY_USERS\S-1-5-21-818888881-78888889-18888888-1000

或安装NTUSER.DAT并避开SID业务。

REG LOAD HKU\ZZZ "C:\Documents and Settings\CustomUser\NTUSER.DAT"
REG ADD HKU\ZZZ\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v newUserProfile /t REG_EXPAND_SZ /d "D:\setup.cmd" /f
REG UNLOAD HKU\ZZZ

编辑,以下是如何从WMIC中找到您的CustomUser SID。

wmic useraccount where name='CustomUser' get sid