В Vista я пытаюсь получить путь «Local AppData» для учетной записи пользователя (кроме текущего пользователя) на локальном компьютере, но столкнулся с некоторой проблемой.Может кто-нибудь, пожалуйста, помогите мне, что не так с приведенным ниже кодом.
var HKU = 0x80000003;
var username = "xyz";
//Loading registry hive of user xyz
var WshShell = new ActiveXObject("WScript.Shell");
var LoadHiveCmd = "REG LOAD " + "HKU" + "\\" + username + " \"" + "c:\\users\\xyz\\NTUSER.DAT" + "\"";
var oExec = WshShell.Exec(strLoadHiveCmd);
var oReg = GetObject("WinMgmts:/root/default:StdRegProv");
var profileRegPath = username + "\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders";
var method, inparams, outparams;
method = oReg.Methods_.Item("GetExpandedStringValue");
inparams = method.InParameters.SpawnInstance_();
inparams.hDefKey = HKU;
inparams.sSubKeyName = profileRegPath ;
inparams.sValueName = "Local AppData";
outparams = oReg.ExecMethod_(method.Name, inparams);
var appDataPath= outparams.sValue;
Здесь значение appDataPath в реестре %USERPROFILE%\AppData\Local
Но я получаю значение C:\Windows\system32\config\systemprofile\AppData\Local
Я не понимаю, откуда приходит значение c:\windows\system32\config\systemprofile
и как оно заменило %USERPROFILE%
значение.