How to disable Open file – Security warning
Asked Answered
B

1

6

I have a weird question. I have written a winform server application and a winform client application. The role of the client is to send commands for running a certain script to the server. The server receives those commands, parses them, and runs them.

These two work great.

I have written a cmd application which uses some of the functions from my client. This application is supposed to function as a cmd client.

The question is this: When I run the winform client, the server runs the commands with no problems at all. When I run the cmd client, when the server attempts to execute the received command, Windows on the server side pops up the security question of whether the script can be run or not (see attached image).

Why does it happen on the cmd and not on the winforms.

Here is my code:

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<string> listOfCommands = new List<string>();

        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] + " <eom> "));
                }
                clientSock.Close();
                clientSock.Dispose();
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
                Environment.Exit(1);
            }

        }
    }
}

Any ideas?

Bugloss answered 5/2, 2013 at 8:7 Comment(4)
Let me guess... the executable for the cmd line program is on a share, while the executable of the winforms client is on the hard drive?Lederer
nope, it's running from my desktop...Bugloss
@ldanis both of them? Is your desktop on your hard drive?Lederer
Yeah, both of them, and my desktop is on my hard drive. I followed @Yaqub Ahmad's link, and now it works/ Thanks anyway.Bugloss
I
7

How can i disable open file - security warning in windows xp ?

To disable the warning start the Group Policy Editor (Start > Run, type -gpedit.msc- and press OK) and go to:

-User Configuration > Administrative Templates > Windows Components > Attachment Manager- then set -Inclusion list for low file types- to Enabled and enter the file types you don't want to be warned about in the box (for example: .exe).

Inquisitionist answered 5/2, 2013 at 8:27 Comment(1)
Works! I have edited my group policy...(followed your second link) and it works now. Thanks.Bugloss

© 2022 - 2024 — McMap. All rights reserved.