上传临时注册表时,客户端不持有所需的权限(C#)

时间:2010-08-10 10:56:14

标签: c# upload registry

当我尝试使用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的网站中使用它时它工作正常。请帮助我没有收到错误。

此致 维克拉姆

1 个答案:

答案 0 :(得分:0)

您可以直接加载RegLoadKey函数以将配置单元作为子项加载。另一个API是RegLoadAppKey,但它只能从Windows Vista开始。不同版本的Reg.exe使用API​​。如何在说明中阅读RegLoadKey所需的SE_RESTORE_NAMESE_BACKUP_NAME权限并启用这些权限(请参阅http://msdn.microsoft.com/en-us/library/ms717797.aspx)。如果您在管理员组或备份操作员中,则具有这些权限。还有一个问题是,如果Reg.exe使用RegLoadKey功能并且您具有本地管理权限,但是您在Vista或Windows 7上启动了一个没有管理员权限的命令,因为UAC(用户帐户控制)。