Click here to Skip to main content
Licence CPOL
First Posted 24 Jan 2007
Views 41,763
Bookmarked 33 times

Programmatically disable/enable Windows firewall

By | 24 Jan 2007 | Article
This article teaches you how to disable and enable your Windows firewall programmatically.

Introduction

This article teaches you how to disable and enable your Windows firewall programmatically.

Setup

  • Create a new Windows Application project.
  • Click on Project->Add Reference and add the following files:
    • Click Browse tab -> Add C:\windows\system32\Hnetcfg.dll.
    • Click COM tab -> Add NetFwTypeLib.

Requirements

Currently, this only works with Windows XP SP2. If you need support for this in Vista, add Wfapi.dll.

Source

Imports System
Imports NetFwTypeLib

' Provides access to the firewall settings for a computer.
Public Function GetFwMgr() As NetFwTypeLib.INetFwMgr
    Dim oINetFwMgr As NetFwTypeLib.INetFwMgr
    Dim NetFwMgrObject As Object
    Dim NetFwMgrType As Type

    ' Use the COM CLSID to get the associated .NET System.Type
    NetFwMgrType = Type.GetTypeFromCLSID( _
     New Guid("{304CE942-6E39-40D8-943A-B913C40C9CD4}"))

    ' Create an instance of the object
    NetFwMgrObject = Activator.CreateInstance(NetFwMgrType)
    oINetFwMgr = NetFwMgrObject

    Return oINetFwMgr
End Function


' Provides access to the firewall settings profile.
Public Function GetProfile() As NetFwTypeLib.INetFwProfile

    Dim oINetPolicy As NetFwTypeLib.INetFwPolicy
    Dim oINetFwMgr As NetFwTypeLib.INetFwMgr

    oINetFwMgr = GetFwMgr()

    oINetPolicy = oINetFwMgr.LocalPolicy
    Return oINetPolicy.CurrentProfile

End Function

' Enable windows firewall.
Public Sub ActivateFirewall()
    Dim fwProfile As NetFwTypeLib.INetFwProfile
    fwProfile = GetProfile()
    fwProfile.FirewallEnabled = True
End Sub

' Disable windows firewall.
Public Sub DisableFirewall()
    Dim fwProfile As NetFwTypeLib.INetFwProfile
    fwProfile = GetProfile()
    fwProfile.FirewallEnabled = False
End Sub

' Firewall state || False = Disabled - True = Enabled.
Public Function FirewallEnabled() As Boolean
    Dim fwProfile As NetFwTypeLib.INetFwProfile
    fwProfile = GetProfile()
    Return fwProfile.FirewallEnabled
End Function

' Enable firewall on Form_Load.
Private Sub Form1_Load(ByVal sender As System.Object, _
            ByVal e As System.EventArgs) Handles MyBase.Load
    If FirewallEnabled() = False Then
        ActivateFirewall()
    Else
        DisableFirewall()
    End If
    MessageBox.Show("Firewall enabled: " & FirewallEnabled())
End Sub

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

petersunde



Norway Norway

Member



Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
Questionfirewall settings PinmemberKanimozhikannanthasan0:59 2 Mar '11  
GeneralMy vote of 5 PinmembertheMadCoder8:17 10 Dec '10  
NewsHere it is in C# PinmembertheMadCoder4:25 10 Dec '10  
Generalfirewall setting Pinmemberprakash_adysoft23:55 30 Oct '09  
Generalgood article PinmemberDonsw16:12 25 Oct '09  
GeneralThere's other Forms of disabling Windows Firewall PinmemberRot17:17 17 Jan '09  
GeneralEnable Disable Widows Firewall for Remote System. Pinmemberganesh198405150:09 13 Nov '08  
Generalerror in code Pinmemberoudfliurquidqw058fh23:34 16 Sep '08  
GeneralStraight to the point article Pinmembernnm13:55 2 Sep '08  
QuestionWhy it don't work?? Pinmemberus0173921:45 6 Feb '07  
GeneralAnother article on the same topic ... PinmemberTony Selke9:04 29 Jan '07  
Generalgood work! Pinmember_Tenschman3:04 27 Jan '07  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web02 | 2.5.120517.1 | Last Updated 24 Jan 2007
Article Copyright 2007 by petersunde
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid