如何在使用c#(或c / c ++或其他语言)的其他用户的registry中添加新密钥
这里是这种情况:客户端PC:“pipe理员”帐户(login)
“用户A”和“用户B”只能通过域“myDomain”login到客户端PC上(他们已经login了一次,并且在客户端PC上有自己的文件夹)
所以我将运行这个代码来使用pipe理员来创build一个新的密钥
Registry.CurrentUser.CreateSubKey(@ “SOFTWARE \ myProgram \ DefaultConfig”);
但问题是,这个键只是为“pipe理员”帐户创build的
我还想使用“pipe理员”帐户为“用户A”和“用户B”创build此密钥
“用户A”和“用户B”都不会出现在HKEY_USERS中
如果在同一台PC上有更多的用户,我想将这个registry键添加到他们也有可能循环一个代码,为所有用户添加一个键? 读写循环?
所有用户的密钥都存储在HKEY_USERS
根密钥下。 在这个根键下,每个用户都有一个键,它的SID是键名。
您必须获取所需用户的SID,然后访问此根密钥:
// Gets the SID of the desired user NTAccount f = new NTAccount(userName); SecurityIdentifier s = (SecurityIdentifier)f.Translate(typeof(SecurityIdentifier)); string sid = s.ToString(); // Now you can access to the HKEY_USERS root key string path = @"SOFTWARE\Console\DefaultConfig"; Registry.Users.CreateSubKey(string.Format("{0}\\{1}", sid, path));
但说实话,我不确定这是个好主意。 难道你不能使用Registry.LocalMachine
而是适用于所有用户?