如何从.NET应用程序中删除SeDebugPrivilege权限

如何从.NET应用程序中删除SeDebugPrivilege权限,.net,vb.net,visual-studio,.net,Vb.net,Visual Studio,我试图让我的程序以一种不需要本地管理权限就可以在计算机上运行的方式进行编译。我一直从微软的应用程序兼容性工具包中得到的一点是,我的应用程序请求SeDebugPrivilege 基本上,我不确定如何/在哪里/何时请求此特权令牌。我在“Release”中构建应用程序时禁用了调试和跟踪编译常量,我很好奇调试权限请求是否来自我正在使用的库 是否有任何简单的方法可以告诉您如何/何时在Visual Studio中请求此权限?有更好的工具来调试这个吗?好吧,所以我想使用我从Visual Studio中的“构建

我试图让我的程序以一种不需要本地管理权限就可以在计算机上运行的方式进行编译。我一直从微软的应用程序兼容性工具包中得到的一点是,我的应用程序请求SeDebugPrivilege

基本上,我不确定如何/在哪里/何时请求此特权令牌。我在“Release”中构建应用程序时禁用了调试和跟踪编译常量,我很好奇调试权限请求是否来自我正在使用的库


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

好吧,所以我想使用我从Visual Studio中的“构建”操作中获得的应用程序时,会在其中嵌入该权限。这意味着第一步是“发布”而不是“构建”以获取可执行文件

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

因此,回顾一下:

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

#2-包括舱单


没有UAC了。不再使用SeDebugPrivilege

“我一直从微软的应用程序兼容性工具包中得到的一件事是,我的应用程序请求SeDebugPrivilege”可能是一个假警报。如果您忽略了它呢?当我在用户权限有限的VM上运行它时,它仍然要求权限提升。我使用ACT尝试找出是什么在做这件事,从中我可以看出是调试许可证,如果库作者。或者用反编译器找到它。怎么会呢?我看到了一些关于生成清单的指南,这不是一个问题,但是关于嵌入清单的内容却没有。这些指南与C/C++相关。据我所知,清单应该自动嵌入到可执行文件中(因为我可以通过使用7zip查看我的exe来提取清单),但出于某种原因,WIndows对此不满意,希望我将.manifest文件显式地放在正在运行的目录中。它实际上并没有改变我的构建过程中的任何东西。C#项目具有相同的设置。我没有使用C#;最大的问题是属性中没有“嵌入清单”选项。我认为你必须假设它是自动嵌入的,如果有一个作为项目的一部分。它是一种长寿的东西,应该适用于所有.NET项目类型(尽管.NET核心应用程序可能没有)。