打开文件 - 安全警告

时间:2009-06-02 20:16:01

标签: .net windows security

操作系统:Vista Business 64-BIT
编码: .NET和第三方EXE
问题:安全性

我已下载curl.exe以帮助我从亚马逊加载产品信息。 Curl.exe已经过预编译,不是.NET应用程序,因此我对卷曲构建的任何更改感到不自在。

关于问题。

当我执行CURL时,我得到这个对话框:

说:打开文件 - 安全警告 无法验证发布者。您确定要运行此软件吗? 运行或取消

无论是手动还是以编程方式运行软件,我都会收到此错误。

当我手动使用这个软件时,我可以解决这个问题,但是我试图自动化一个以编程方式运行它的进程,所以我想压制这个对话框。

在研究这个时我得到了很多关于IE设置调整的信息......但是我没有从我的浏览器运行任何东西,只是在windows中启动exe,所以这不是问题。

我还看到很多关于将不同域和服务器添加到允许列表的信息。这是在我自己的盒子(C:\ curl.exe)本地运行,所以这也不是问题。

我是我正在运行此框的管理员。

关于这一点的信息非常少。

编程说明:

我正在通过.NET运行这个文件:

string cmd = string.Empty;

cmd += @"--location --user username:userpass -C - ";
cmd += @"--digest -k https://assoc-datafeeds-na.amazon.com/datafeed/getFeed?filename=";
cmd += FeedName + ".gz ";
cmd += @"-o " + FeedFileFolder + FeedName + ".gz";

System.Diagnostics.Process proc; // Declare New Process
System.Diagnostics.ProcessStartInfo procInfo = new System.Diagnostics.ProcessStartInfo(); 

procInfo.UseShellExecute = true;  //If this is false, only .exe's can be run.
procInfo.WorkingDirectory = "C:"; //execute notepad from the C: Drive
procInfo.FileName = "curl.exe"; // Program or Command to Execute.
procInfo.Arguments = cmd; //Command line arguments.

所以一种替代方案,如果我无法在Windows中更改设置以允许此未经验证的EXE而不使用数字签名,则可以调整我的procInfo以允许我禁止此对话框,但我还没有找到它...

任何想法......?

谢谢, 汤姆

2 个答案:

答案 0 :(得分:7)

我相信IE会将名为Zone.Identifier的NTFS流附加到它下载的exe文件中。

您可以通过在命令提示符下键入以下内容来验证这一点:

more <exename.exe:Zone.Identifier

它将输出类似

的内容
[ZoneTransfer]
ZoneId=3

我不知道如何在不使用实用软件的情况下删除NTFS流,我不打算在这里推荐,因为我没有使用过。您可以尝试通过

来清除它
echo . >exename.exe:Zone.Identifier

或者只是将文件复制到FAT驱动器上,然后再关闭。 (最后,用于FAT格式的拇指杆!)

答案 1 :(得分:0)

Windows会跟踪二进制文件的来源,因此即使未从浏览器运行,下载的二进制文件仍会被标记为不安全。

从exe文件属性中,单击“取消阻止”。