如何暂时降低高程

时间:2014-02-20 15:53:55

标签: .net elevated-privileges

场景是我正在以管理员身份运行服务。

我们有一个运行自定义代码的标注(想想脚本)。它使用codedom编译来创建一个程序集并创建一个类型并调用一个方法(基于代码)。

我希望在标注期间暂时删除管理员权限,然后在之后恢复它们。

2 个答案:

答案 0 :(得分:0)

我认为你不能以你描述的方式“放弃”特权;您的服务以用户身份运行,并且该用户可以获得一定的访问权限。您可以要求Windows临时授予您更多权限(这就是UAC的全部内容),但您不能要求它给您更少的权限!

我会在系统中创建第二个用户,以便运行脚本(具有适当较低的访问级别),并在自定义代码的持续时间内模拟该用户。

<强> [编辑] 结果我不知道我在说什么。根据此链接,UAC以相反的方式实现,方法是创建一组受限制的权限并在该上下文中运行代码。

http://weblogs.asp.net/kennykerr/archive/2006/09/29/Windows-Vista-for-Developers-1320-Part-4-1320-User-Account-Control.aspx

答案 1 :(得分:0)

我最终在沙盒应用程序域中运行代码,如链接中所述:

如何:在沙盒中运行部分受信任的代码

http://msdn.microsoft.com/en-us/library/bb763046%28v=vs.100%29.aspx