Configuration xp firewall

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 338 fois - Téléchargée 31 fois

Contenu du snippet

Classe permettant d'ajouter, activer/désactiver une règle de configuration du FireWall d'XP

Source / Exemple :


public class XPFireWall
    {
        /// <summary>
        /// Configuration du firewall windows
        /// </summary>
        /// <param name="protocol">Protocol de communication du port</param>
        /// <param name="port">Numero du port</param>
        /// <param name="mode">Mode de configuration</param>
        /// <param name="scope">Etendue</param>
        /// <param name="RuleName">Nom de la règle de configuration</param>
        /// <returns>Execution reussit</returns>
        public bool SetPort(Protocol protocol, int port, Mode mode, Scope scope, string RuleName)
        {
            bool _blnReussit = false;
            
            //Version de L'OS Minimum pour la configuration du firewall
            Version _versOSVersion = new Version(5, 1, 2600);

            if ((Environment.OSVersion.Version > _versOSVersion) || ((Environment.OSVersion.Version == _versOSVersion) && (int.Parse(Environment.OSVersion.ServicePack.Replace("Service Pack ", "")) >= 2)))
            {
                //Concaténation des parametres
                string _strParam = string.Concat(new object[] { "firewall set portopening ", protocol, " ", port, " ", RuleName, " ", mode, " ", scope });

                //Parametrage du process NETSH
                Process _procNetSH = new Process();
                _procNetSH.StartInfo.FileName = "netsh";
                _procNetSH.StartInfo.Arguments = _strParam;
                _procNetSH.StartInfo.CreateNoWindow = true;
                _procNetSH.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                _procNetSH.StartInfo.UseShellExecute = false;
                _procNetSH.StartInfo.RedirectStandardOutput = true;
                _procNetSH.StartInfo.RedirectStandardError = true;
                try
                {
                    //Execution du processus NETSH
                    _procNetSH.Start();
                    _procNetSH.WaitForExit(20000);
                    if (_procNetSH.ExitCode == 0)
                    {
                        _blnReussit = true;
                    }
                }
                catch
                {
                }
                finally
                {
                    if (_procNetSH != null)
                    {
                        _procNetSH.Close();
                        _procNetSH.Dispose();
                    }
                }
            }
            return _blnReussit;
        }

        public enum Mode
        {
            Enable,
            Disable
        }
        public enum Profil
        {
            Current,
            Domain,
            Standard,
            All
        }
        public enum Protocol
        {
            TCP,
            UDP,
            ALL
        }
        public enum Scope
        {
            All,
            Subnet,
            Custom
        }
   }

A voir également

Ajouter un commentaire Commentaires
Messages postés
273
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
6 février 2009
1
Salut,
"ServicePack" n'existe pas... tu dois être avec le famework 1.1.
Je peux pas te dire comment corriger ce problème, mais si quelqu'un utilise encore le framework 1.1 (lol) et qui a une alternative, je suis prenneur.
Messages postés
13
Date d'inscription
mardi 30 septembre 2003
Statut
Membre
Dernière intervention
22 février 2012

bonjour,
j'ai vraiment aimé votre code,
mais quand je veut l'executé j'ai une erreur : tout simplement parce que ServicePack n'existe pas dans Environment.OSVersion !!! merci de me tenir au courant
a+

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.