当我尝试使用C#代码在我的注册表中上传注册表时,应用程序会抛出错误“客户端不保留所需的权限”。如果我在其他机器上使用相同的代码,它工作正常但不是特别在我的机器上
我使用下面提到的代码上传注册表文件
Process my_p = new Process();
my_p.StartInfo.FileName = "reg";
my_p.StartInfo.Arguments = "load HKLM\TEST C:\Documents and Settings\Administrator\NTUSER.DAT";
my_p.Start();
my_p.WaitForExit();
System.IO.StreamReader srOutPut = my_p.StandardOutput;
System.IO.StreamReader srError = my_p.StandardError;
my_p.Close();
results = srOutPut.ReadToEnd().Trim();
Errors = srError.ReadToEnd().Trim();
此外,有一件事我注意到上面的代码我在基于http的网站上使用,但是当我在基于File Syatem的网站中使用它时它工作正常。请帮助我没有收到错误。
此致 维克拉姆
答案 0 :(得分:0)
您可以直接加载RegLoadKey函数以将配置单元作为子项加载。另一个API是RegLoadAppKey,但它只能从Windows Vista开始。不同版本的Reg.exe使用API。如何在说明中阅读RegLoadKey所需的SE_RESTORE_NAME
和SE_BACKUP_NAME
权限并启用这些权限(请参阅http://msdn.microsoft.com/en-us/library/ms717797.aspx)。如果您在管理员组或备份操作员中,则具有这些权限。还有一个问题是,如果Reg.exe使用RegLoadKey功能并且您具有本地管理权限,但是您在Vista或Windows 7上启动了一个没有管理员权限的命令,因为UAC(用户帐户控制)。