Red de conocimiento informático - Material del sitio web - Cómo controlar mediante programación la configuración del firewall en Vista

Cómo controlar mediante programación la configuración del firewall en Vista

Mencioné la mitad antes, pero no claramente al final. Las funciones principales del programa FireWallManager son: 1. public void FireWallTrigger (bool enable) // Activa y desactiva el firewall. 1. public void FireWallTrigger (bool enable) // Activa y desactiva el firewall. Parece que hay un problema en Vista, pero XP sp2 parece estar bien. Parece que hay un problema en Vista, pero XP sp2 parece estar bien. Pero usando el método INetFwPolicy2.set_FirewallEnabled, Vista también puede manejarlo. Pero usando el método INetFwPolicy2.set_FirewallEnabled, Vista también puede manejarlo. 2. public void FireWallService (nombre de cadena, bool enable) // Activa y desactiva el programa de servicio de firewall. Generalmente, los servicios internos para compartir archivos e impresoras son más útiles. 2. public void FireWallService (nombre de cadena, bool enable) // Activa y desactiva el programa de servicio de firewall. Generalmente, los servicios para compartir archivos e impresoras que contiene son más útiles. 3. public bool AddPort (cadena nombre de puerto, int número de puerto, protocolo de cadena) // Abre un puerto. 3. public bool AddPort (cadena nombre de puerto, int número de puerto, protocolo de cadena) // Abre un puerto. 4. public bool RemovePort (int número de puerto, protocolo de cadena) // Eliminar el puerto abierto 4. public bool RemovePort (int número de puerto, protocolo de cadena) // Eliminar el puerto abierto 5. public bool AddAplication (nombre de descripción de cadena, nombre de archivo de cadena) // Abra la aplicación publicada 5. public bool AddAplication (nombre de descripción de cadena, nombre de archivo de cadena) // Abra la aplicación publicada 6. bool público RemoveApplication (nombre de archivo de cadena) // Cierre la aplicación publicada. 6. public bool RemoveApplication (string fileName) // Cierra la aplicación publicada. También hay un objeto protegido getInstance (nombre de tipo de cadena). CLSID se usó originalmente para crear instancias de esas interfaces. Más tarde, descubrí que ProgID es en realidad más simple y no es necesario verificarlo. Simplemente elimine el INet. la interfaz y será ProgID.

También hay un objeto protegido getInstance (nombre de tipo de cadena) que originalmente usaba CLSID para crear instancias de esas interfaces. Más tarde, descubrí que ProgID es en realidad más simple y no es necesario verificarlo. Simplemente elimine el INet. interfaz y se convertirá en ProgID. Como INetFwOpenPort port = (INetFwOpenPort) Activator.CreateInstance (Type.GetTypeFromProgID ("HNetCfg.FwOpenPort")); En INetFwOpenPort y FwOpenPort Primero, cree un programa de consola, agregue una referencia al programa y busque "NetFwTypeLib". en el objeto COM y agréguelo. Primero, cree un programa de consola, agregue una referencia al programa, busque "NetFwTypeLib" en el objeto COM y agréguelo. El firewall depende principalmente de este objeto para funcionar. El firewall depende principalmente de este objeto para funcionar. Parece que no sólo Vista, sino también Xp es igual. Parece que no sólo Vista, sino también Xp es igual.

El programa principal es el siguiente: El programa principal es el siguiente: FireWallManager.cs FireWallManager.cs usa System; usa System.Collections.Generic; usa System.Collections.Generic; usando NetFwTypeLib; usando el espacio de nombres FirewallManager el espacio de nombres FirewallManager { { clase FwManager clase FwManager { { privado INetFwProfile NetFwProfile privado INetFwPolicy2 NetFwPolicy; //esta interfaz contiene muchas funciones útiles. private INetFwPolicy2 NetFwPolicy2 //Esta interfaz contiene muchas funciones útiles. public FwManager() public FwManager() { { //Crear objeto Com //Crear objeto Com //Tipo NetFwMgrType = Type.GetTypeFromCLSID( new Guid( "{304CE942-6E39-40D8 //Tipo NetFwMgrType = Type.GetTypeFromCLSID( new Guid ( "{304CE942-6E39-40D8 -943A -943A -B -B 913C 913C 40C 40C 9CD4}" ); 9CD4}" ); Tipo NetFwMgrType = Type.GetTypeFromProgID( "HNetCfg.FwMgr" ); Tipo NetFwMgrType = Tipo .GetTypeFromProgID( "HNetCfg.FwMgr" ); objeto NetFwMgrObject = Activator.CreateIn objeto NetFwMgrObject = Activator.CreateIn postura( NetFwMgrType ); r )NetFwMgrObject; NetFwProfile = NetFwMgr. LocalPolicy.CurrentProfile; NetFwProfile = NetFwMgr.LocalPolicy.CurrentProfile; Tipo NetFwPolicy2Type = Type.GetT;

ypeFromProgID( "HNetCfg.FwPolicy2" ); Tipo NetFwPolicy2Type = Type.GetTypeFromProgID( "HNetCfg.FwPolicy2" ); objeto NetFwPolicy2Object = System.Activator.CreateInstance( NetFwPolicy2Type ); wPolítica2 = ( INetFwPolicy2 )NetFwPolicy2Object; NetFwPolicy2 = ( INetFwPolicy2 )NetFwPolicy2Object } } public void ShowInfo() public void ShowInfo() { { switch( NetFwProfile.Type ) switch( NetFwProfile.Type ) { { caso NET_FW_PROFILE_TYPE_.NET_FW_PROFILE_DOMAIN: caso NET_ FW_PROFILE_ TYPE_.NET_FW_PROFILE_DOMAIN: Console .WriteLine( "Tipo de perfil de red1: " "Dominio" ); Console.WriteLine( "Tipo de perfil de red1: " "Dominio" break; caso NET_FW_PROFILE_STANDARD: Console.WriteLine( "Red Tipo de perfil1: " "Estándar" ); Console.WriteLine( "Tipo de perfil de red1: " "Estándar" ); break; break; caso NET_FW_PROFILE_TYPE_.NET_FW_PROFILE_CURRENT: caso NET_FW_PROFILE_TYPE_.NET_FW_PROFILE_CURRENT: Console.WriteLine( "Tipo de perfil de red 1: " "Actual " ); Console.WriteLine( "Perfil de red Tipo1: " "Actual" ); break; break; caso NET_FW_PROFILE_TYPE_.NET_FW_PROFILE_TYPE_MAX: caso NET_FW_PROFILE_TYPE_.NET_FW_PROFILE_TYPE_MAX: Console.WriteLine( "Perfil de red Tipo1: " "Max" ); "Perfil de red Tipo 1: " "Máx.

" ); romper; romper; } } cambiar( ( NET_FW_PROFILE_TYPE2_ )NetFwPolicy2.CurrentProfileTypes ) cambiar( ( NET_FW_PROFILE_TYPE2_ )NetFwPolicy2.CurrentProfileTypes ) { { caso NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_DOMAIN: caso NET_FW_PROFIL E_TYPE2_.NET _FW_PROFILE2_DOMAIN: Console.WriteLine( "Tipo de perfil de red2: " " Dominio " ); Console.WriteLine( "Perfil de red Tipo2: " "Dominio" ); WriteLine( "Perfil de red Tipo2: " "Privado" ); break; caso NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PUBLIC: caso NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PUBLIC: Console.WriteLine( "Perfil de red Tipo2: " "Público" ); Type2: " "Público" ); break; break; caso NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_ALL: caso NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_ALL: Console.WriteLine( "Perfil de red Tipo2: " "Todos"); Console.WriteLine( "Perfil de red Tipo2: " "Todos" ) ; break; break; } } Console.WriteLine( "Firewall habilitado: " NetFwProfile.FirewallEnabled ); Console.WriteLine( "Firewall habilitado: " NetFwProfile.FirewallEnabled ); ; Console.WriteLine( "Excepciones no permitidas: " NetFwProfile.ExceptionsN

Otallowed); Isapabled); WriteLine("UnicastResponsestoMulticastBroadcastDisabled: " NetFwProfile.UnicastResponsestoMulticastBroadcastDisabled); //Administrador remoto //Administrador remoto INetFwRemoteAdminSettings RASettings = NetFwP INetFwRemoteAdminSettings RASettings = NetFwP perfil.RemoteAdminSettings; Administración de mote habilitada: " RASettings.Enabled); Consola. WriteLine( "Administración remota habilitada: " RASettings.Enabled ); switch( RASettings.IpVersion ) switch( RASettings.IpVersion ) { { caso NET_FW_IP_VERSION_.NET_FW_IP_VERSION_V4: caso NET_FW_IP_VERSION_.NET_FW_IP_VERSION_V4: Console.WriteLine( "Versión IP de administración remota: V4 ") ; Console.WriteLine( "Versión IP de administración remota: V4" ); break; case NET_FW_IP_VERSION_.NET_FW_IP_VERSION_V6: case NET_FW_IP_VERSION_.NET_FW_IP_VERSION_V6: Console.WriteLine( "Versión IP de administración remota: V6" ); Versión IP: V6" ); ruptura; ruptura; caso NET_FW_IP_VERSION_.NET_FW_IP_VERSION_MAX: caso NET_FW_IP_VERSION_.NET_FW_IP_VERSION_MAX: Conso

le.WriteLine( "Versión de IP de administración remota: MAX" ); Console.WriteLine( "Versión de IP de administración remota: MAX" ); break; Versión: CUALQUIER" ); Console.WriteLine( "Versión IP de administración remota: CUALQUIER" ); break; break; } } switch( RASettings.Scope ) switch( RASettings.Scope ) { { case NET_FW_SCOPE_.NET_FW_SCOPE_ALL: case NET_FW_SCOPE_.NET_FW_SCOPE_ALL: Console.WriteLine( "Ámbito de administración remota: TODOS" ); Console.WriteLine( "Ámbito de administración remota: TODOS" ); break; case NET_FW_SCOPE_.NET_FW_SCOPE_CUSTOM: case NET_FW_SCOPE_.NET_FW_SCOPE_CUSTOM: " ); Console.WriteLine( "Administración remota Alcance: Personalizado" ); break; break; case NET_FW_SCOPE_.NET_FW_SCOPE_LOCAL_SUBNET: case NET_FW_SCOPE_.NET_FW_SCOPE_LOCAL_SUBNET: Console.WriteLine( "Ámbito de administración remota: subred local" ); Console.WriteLine( "Ámbito de administración remota: subred local" ); break; break; case NET_FW_SCOPE_.NET_FW_SCOPE_MAX: case NET_FW_SCOPE_.NET_FW_SCOPE_MAX: Console.WriteLine( "Ámbito de administración remota: MAX" );