首页 > 解决方案 > 如何从 .NET 应用程序中删除 SeDebugPrivilege 权限

问题描述

我试图让我的程序以不需要本地管理权限在计算机上运行的方式进行编译。我从 Microsoft 的应用程序兼容性工具包中不断得到的一件事是我的应用程序请求 SeDebugPrivilege。

基本上我不确定如何/在哪里/何时请求这个特权令牌。我在禁用 DEBUG 和 TRACE 编译常量的情况下在“发布”中构建应用程序,我很好奇调试权限请求是否来自我正在使用的库?

有什么简单的方法可以告诉您在 Visual Studio 中如何/何时请求此权限?有没有更好的工具来调试这个?

标签: .netvb.netvisual-studio

解决方案


好吧,所以我想使用我从 Visual Studio 中的“构建”操作中获得的应用程序将附带嵌入其中的权限。这意味着第 1 步对我们来说是“发布”而不是“构建”来获取我的可执行文件。

第 2 步有点奇怪,而不是我最初在我的问题中提出的问题。由于我的应用程序在其名称中使用了短语“Updater”,显然这会触发一些 UAC 问题,因为它认为它是一个安装包。这里的问题是什么提示了我。在链接的 MSDN 页面之后,我了解到我应该在我的应用程序中包含清单,瞧!

所以,回顾一下:

#1 - 首先发布可执行文件

#2 - 包括清单

没有更多的 UAC。不再有 SeDebugPrivilege


推荐阅读