C# 是否可以通过编程方式将外部exe标记为“安全运行(未知发布服务器)”?

C# 是否可以通过编程方式将外部exe标记为“安全运行(未知发布服务器)”?,c#,vb.net,windows,installation,C#,Vb.net,Windows,Installation,所以我有自己的应用程序main.exe。在某些安全级别较高的计算机中,由于未知发布者,它将显示警告 我正试图绕过它 现在我知道,正确的方法是对程序集进行签名,购买证书并成为已知的发布者,然后它将不会显示此警告,但证书并不便宜 我的问题是,有没有一种方法可以像在vb.net/C中构建的安装程序一样运行不同的exe,以某种方式将我的应用程序main.exe标记为可安全运行或受信任的?因此,它将在所有计算机中运行而不显示警告消息 重要提示-安装程序将以管理员权限运行。经过多次尝试,我找到了一个非常好的

所以我有自己的应用程序main.exe。在某些安全级别较高的计算机中,由于未知发布者,它将显示警告

我正试图绕过它

现在我知道,正确的方法是对程序集进行签名,购买证书并成为已知的发布者,然后它将不会显示此警告,但证书并不便宜

我的问题是,有没有一种方法可以像在vb.net/C中构建的安装程序一样运行不同的exe,以某种方式将我的应用程序main.exe标记为可安全运行或受信任的?因此,它将在所有计算机中运行而不显示警告消息


重要提示-安装程序将以管理员权限运行。

经过多次尝试,我找到了一个非常好的解决方法

我在这里找到了Visual Studio 2015安装程序项目:

Witch为您提供了创建和安装项目的选项

下载并安装此插件后,您将能够将安装程序项目添加到主项目中

然后,您需要选择安装程序将安装的项目:

然后,您可以构建此安装程序项目,并获得2个安装文件:

然后你就完蛋了

现在,您可以运行setup.exe,而不必发出任何有关未知发布者的警告消息。请务必注意,您必须启动setup.exe而不是setup.msi,并且在启动setup.exe时,必须将setup.msi放在同一文件夹中。虽然它安装你的应用程序,它将要求管理员权限,但它不会给你一个可怕的警告消息,这是一个不安全的应用程序

安装应用程序后,您将能够从设置安装的位置运行它,通过运行它,我的意思是,在安装目录中,您将拥有您的应用程序exe文件,并且您可以在没有任何警告msgs的情况下运行它

所以基本上你只需要在安装程序开始安装时授予管理员权限,然后你的应用程序就会被信任,并且在没有任何MSG的情况下运行


关于Setup.exe和Setup.msi,您可以使用IExpress将它们连接为两个a 1 exe

这个问题的唯一正确答案可以在Microsoft博客上找到

这一切都与声誉有关。这意味着,您需要使用由CA(如Comodo或Verisign)签署的官方证书对可执行文件进行正确签名。这是必要的,这样才能跟踪您作为出版商的声誉。之后,你需要建立声誉。这只需要时间,安装的软件越多,您获得智能屏幕过滤器信任的机会就越高

如果您需要一个可信的可执行文件尽快,换句话说,现在。。。为自己购买扩展验证或EV代码签名证书。正如微软博客文章中所说,建立声誉是没有必要的:

…由EV代码签名证书签名的程序可以立即 建立声誉


不知道这是否可能。。。这难道不会违背安全系统的目的吗?我认为如果windows没有捕获到它,任何值得一试的防病毒软件都会这样做。@Dallen如果你以管理员身份运行一个未知发布者的exe,它会要求你拥有管理员权限,如果你同意UAC消息,它不会向你显示警告消息。基本上我想做一个exe,就像你作为管理员启动安装程序1次一样,它会将我的应用程序标记为可信。我不知道我在哪里破坏了安全系统。它可能会在不知道正确性的情况下违反安全系统,因为一个应用程序不应该有办法将另一个应用程序标记为安全的。它不会问你,因为你正在使用管理员权限,所以你认为它是安全的。然而,该系统旨在防止你从互联网下载的应用程序在后台运行,并在你不知情的情况下窃取数据。@Dallen我理解你的意思,其中有一些逻辑,但我仍然可以说,在你授予应用程序管理员特权的那一刻,它已经可以做不安全的事情了。可能重复的