操作系统: Vista Business 64-BIT
编码: .NET 和第 3 方 EXE
问题:安全
我已经下载了 curl.exe 来帮助我从亚马逊加载产品信息。 Curl.exe 已经过预编译,不是 .NET 应用程序,因此我不愿意对 curl 的构建进行任何更改。
关于问题。
当我执行 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 以允许我禁止显示此对话框,但我还没有找到它。 .
任何想法..?
谢谢, 汤姆
最佳答案
我相信 IE 将一个名为 Zone.Identifier 的 NTFS 流附加到它下载的 exe 文件。
您可以通过在命令提示符下键入以下内容来验证这一点:
more <exename.exe:Zone.Identifier
它会输出类似
的内容[ZoneTransfer]
ZoneId=3
我不知道如何在不使用实用软件的情况下删除 NTFS 流,我不会在这里推荐,因为我没有使用过任何实用软件。您可以尝试通过执行
来清除它echo . >exename.exe:Zone.Identifier
或者只是将文件复制到 FAT 驱动器上,然后再次关闭。 (最后,FAT 格式的拇指棒的用途!)
关于.net - 打开文件 - 安全警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/941656/