“此文件来自另一台计算机,可能会被阻止以保护此计算机。” - 如何以编程方式在C#.net中删除此属性?

时间:2014-03-14 01:26:40

标签: c# .net windows exe blocked

我用C#制作了一个程序。如果用户勾选该框,它会将自身复制到启动。

应用程序使用注册表项" SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run"将自身添加到启动中。

它工作正常,除了每次重新启动计算机时,系统都会提示用户是否确定要运行该程序,因为它被Windows阻止,因为它&#34 ;来自另一台计算机"。

任何方式我都可以摆脱这个Windows"阻止"通过代码标记,以便每次程序尝试自行运行时都不会提示用户?

由于

2 个答案:

答案 0 :(得分:0)

下载/复制到本机时,Windows会根据文件所在的位置(http://msdn.microsoft.com/en-us/library/dn392609.aspx)附加区域标识符(http://msdn.microsoft.com/en-us/library/ms537183.aspx

要取消阻止该文件,您必须让用户打开文件属性并单击“取消阻止”按钮,或者自行将其删除。

您可以在此处找到有关如何发生这种情况的更多信息以及一些方法(包括代码):http://weblogs.asp.net/dixin/archive/2009/03/14/understanding-the-internet-file-blocking-and-unblocking.aspx

答案 1 :(得分:-2)

尝试使用powershell脚本 http://technet.microsoft.com/en-us/library/hh849924.aspx

不阻止-文件 取消阻止从Internet下载的文件。 句法 参数集:ByPath Unblock-File [-Path] [-Confirm] [-WhatIf] []

参数集:ByLiteralPath Unblock-File -LiteralPath [-Confirm] [-WhatIf] []

详细说明 Unblock-File cmdlet允许您打开从Internet下载的文件。它取消阻止从Internet下载的Windows PowerShell脚本文件,以便您可以运行它们,即使Windows PowerShell执行策略是RemoteSigned也是如此。默认情况下,这些文件被阻止以保护计算机免受不受信任的文件的影响。 在使用Unblock-File cmdlet之前,请检查文件及其来源并验证是否可以安全打开。 在内部,Unblock-File cmdlet删除Zone.Identifier备用数据流,其值为“3”以指示它是从Internet下载的。 有关Windows PowerShell执行策略的详细信息,请参阅about_Execution_Policies(http://go.microsoft.com/fwlink/?LinkID=135170)。 此cmdlet是在Windows PowerShell 3.0中引入的。