如何禁用打开文件 – 安全警告

我有一个奇怪的问题。 我编写了一个winform服务器应用程序和一个winform客户端应用程序。 客户端的作用是将用于运行某个脚本的命令发送到服务器。 服务器接收这些命令,解析它们并运行它们。

这两个工作很棒。

我编写了一个cmd应用程序,它使用了我客户端的一些function。 该应用程序应该用作cmd客户端。

问题是:当我运行winform客户端时,服务器运行命令完全没有问题。 当我运行cmd客户端时,当服务器尝试执行收到的命令时,服务器端的Windows会弹出是否可以运行脚本的安全问题(请参阅附图)。

为什么会在cmd上发生,而不是在winforms上发生。

这是我的代码:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Win32; using System.Net.Sockets; using System.ComponentModel; using System.IO; using System.Management; namespace RemoteBatcher { class ClientCmdProgram { private static RegistryKey registryKey; private static Socket clientSock; private static string remoteIpAddress = "192.168.0.1"; private static int remotePort = 8; private static string userName = ""; private static string targetPath = "Z:\\nBatcher\\"; private static List listOfCommands = new List(); static void Main(string[] args) { var backgroundWorker = new BackgroundWorker(); userName = RemoteUtils.getConnectedUser(); registryKey = Registry.CurrentUser.OpenSubKey("Key"); if (registryKey == null) { Console.WriteLine("Error! No Saved Data Was Found In The Registry. Please Run The RemoteBatcherClient App First."); Environment.Exit(1); } if (!connectToServer(backgroundWorker)) Environment.Exit(1); getCommandsList(); sendCommands(backgroundWorker); } private static bool connectToServer(BackgroundWorker backgroundWorker) { try { clientSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); clientSock.Connect(remoteIpAddress, remotePort); backgroundWorker.DoWork += (sender1, e1) => RemoteUtils.copyDllsToServer(targetPath += userName); backgroundWorker.RunWorkerAsync(); } catch (Exception ex) { Console.Write(ex.Message); return false; } return true; } private static void getCommandsList() { string[] commandsInRegistry = registryKey.GetValueNames(); for (int i = 0; i < commandsInRegistry.Length; i++) { listOfCommands.Add(registryKey.GetValue(commandsInRegistry[i]).ToString()); } } private static void sendCommands(BackgroundWorker backgroundWorker) { int flicker = 100; int counter = 100; try { while (backgroundWorker.IsBusy) { if (counter == flicker) { counter = 1; Console.WriteLine("Copying Executable Files, Please Wait.."); } else if (counter == 50) { Console.Clear(); } else counter++; } for (int i = 0; i < listOfCommands.Count; i++) { clientSock.Send(Encoding.Default.GetBytes(listOfCommands[i] + "  ")); } clientSock.Close(); clientSock.Dispose(); } catch (Exception ex) { Console.Write(ex.Message); Environment.Exit(1); } } } } 

有任何想法吗?

如何在Windows XP中禁用打开文件 – 安全警告?

要禁用警告,请启动组策略编辑器(“开始”>“运行”,键入-gpedit.msc-并按“确定”),然后转到:

– 用户配置>管理模板> Windows组件>附件管理器 – 然后设置 – 低文件类型的包含列表 – 启用并在框中输入您不希望收到警告的文件类型(例如:.exe)。