场景是我正在以管理员身份运行服务。
我们有一个运行自定义代码的标注(想想脚本)。它使用codedom编译来创建一个程序集并创建一个类型并调用一个方法(基于代码)。
我希望在标注期间暂时删除管理员权限,然后在之后恢复它们。
答案 0 :(得分:0)
我认为你不能以你描述的方式“放弃”特权;您的服务以用户身份运行,并且该用户可以获得一定的访问权限。您可以要求Windows临时授予您更多权限(这就是UAC的全部内容),但您不能要求它给您更少的权限!
我会在系统中创建第二个用户,以便运行脚本(具有适当较低的访问级别),并在自定义代码的持续时间内模拟该用户。
<强> [编辑] 强> 结果我不知道我在说什么。根据此链接,UAC以相反的方式实现,方法是创建一组受限制的权限并在该上下文中运行代码。
答案 1 :(得分:0)
我最终在沙盒应用程序域中运行代码,如链接中所述:
如何:在沙盒中运行部分受信任的代码
http://msdn.microsoft.com/en-us/library/bb763046%28v=vs.100%29.aspx