2013-12-18 45 views
1

是否可以從其他管理員帳戶更改其他用戶HKCU註冊表?通過批處理文件更改其他用戶的註冊表

我的工作流程是:

  1. 安裝在管理員帳戶的軟件。
  2. 安裝創建用戶「CustomUser」
  3. 我需要設置一些註冊表項,該用戶...

我能夠通過命令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);

我理想的方式是改變只是在批處理文件註冊表。

+2

爲什麼你不能讓程序在第一次運行時創建密鑰? –

回答

2

要麼事先確定'CustomUser'SID並通過HKU路徑訪問它,直接將reg.exe/add命令解析到配置文件。

例SID

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

或裝入NTUSER.DAT和避免SID busiesss。

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 
+0

第一個選項:是的,這是我的第一個想法,但在HKEY_USERS不是那個關鍵。我讀過HKEY_USERS中的用戶是已登錄的用戶。我將嘗試第二種選擇。謝謝 – dEVIANT

+0

不是一個問題,無論哪個適合你。添加一些關於在哪裏收集sid的細節,或者你可以爲/ f標記包裹一個set/p並將sid作爲變量傳遞。 –

+0

該文件甚至不存在。它僅在帳戶首次登錄時創建。 –