FAQ 0102: Wie ermittle oder ändere ich den Status der Firewall von Windows XP?
von Helge Rex
Frage
Wie ermittle ich den Status der Firewall von Windows XP?
Wie aktiviere oder deaktiviere ich die Firewall von Windows XP?
Antwort
Folgender Code wurde von Konrad Doblander gepostet:
Private Sub Obtain_And_Change_ICF_Status(ByVal strConnection As String) On Error Goto ErrorHandler Dim SharingMgr As Object Dim EachConnection As Object Dim ConnectionProps As Object Dim item As Object Dim Previous_ICF_State As String Set SharingMgr = CreateObject("HNetCfg.HNetShare.1") If (Not (SharingMgr Is Nothing)) Then For Each item In SharingMgr.EnumEveryConnection Set EachConnection = _ SharingMgr.INetSharingConfigurationForINetConnection(item) Set ConnectionProps = SharingMgr.NetConnectionProps(item) If (ConnectionProps.Name = strConnection) Then If EachConnection.InternetFirewallEnabled Then EachConnection.DisableInternetFirewall Previous_ICF_State = _ "ICF war aktiviert und ist jetzt deaktiviert." Else EachConnection.EnableInternetFirewall Previous_ICF_State = _ "ICF war deaktiviert und ist jetzt aktiviert." End If Exit For End If Next item End If ExitSub: If (Len(Previous_ICF_State) <> 0) Then MsgBox _ Previous_ICF_State Exit Sub ErrorHandler: Select Case Err.Number Case 55 ' "Datei bereits geöffnet" Close #1 ' Datei schließen Case 70 ' "Zugriff verweigert" Call MsgBox("Zugriff aufgrund fehlender Rechte verweigert.", _ vbInformation Or vbOKOnly) Case 429 ' Komponentenerstellung nicht möglich Call MsgBox("Komponente kann nicht erstellt werden.", _ vbInformation Or vbOKOnly) Case Else ' andere auftretende Fehler hier behandeln End Select Resume Next End Sub
Listing 1: Status der Firewall von Windows XP ermitteln
Verschiedentlich wurde gesagt, daß dieser Quelltext nicht oder nicht richtig läuft.
coni hatte deshalb einen Quelltext gepostet, der fehlerfrei, jedoch ohne jede Fehlerbehandlung, arbeitet:
Dim XPFirewall As Object Dim XPFirewallpolicy As Object Set XPFirewall = CreateObject("HNetCfg.FwMgr") Set XPFirewallpolicy = XPFirewall.LocalPolicy.CurrentProfile XPFirewallpolicy.FirewallEnabled = False
Listing 2: Status der Firewall von Windows XP neu setzen
Nachtrag von Florian Rittmeier:
In der Microsoft Knowledge Base gibt es einige Scripte, die den Umgang mit der Firewall-API demonstrieren.
Ihre Meinung
Falls Sie Fragen zu dieser FAQ haben, Ihre Erfahrung mit anderen Nutzern austauschen möchten oder auf eine Ergänzung hinweisen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.