Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The following code example displays all properties of the current Windows Firewall profile.
Option Explicit
' Define Constants from the SDK and their associated string name
' Scope
Const NET_FW_SCOPE_ALL = 0
Const NET_FW_SCOPE_ALL_NAME = "All subnets"
Const NET_FW_SCOPE_LOCAL_SUBNET = 1
Const NET_FW_SCOPE_LOCAL_SUBNET_NAME = "Local subnet only"
Const NET_FW_SCOPE_CUSTOM = 2
Const NET_FW_SCOPE_CUSTOM_NAME = "Custom Scope (see RemoteAddresses)"
' Profile Type
Const NET_FW_PROFILE_DOMAIN = 0
Const NET_FW_PROFILE_DOMAIN_NAME = "Domain"
Const NET_FW_PROFILE_STANDARD = 1
Const NET_FW_PROFILE_STANDARD_NAME = "Standard"
' IP Version
Const NET_FW_IP_VERSION_V4 = 0
Const NET_FW_IP_VERSION_V4_NAME = "IPv4"
Const NET_FW_IP_VERSION_V6 = 1
Const NET_FW_IP_VERSION_V6_NAME = "IPv6"
Const NET_FW_IP_VERSION_ANY = 2
Const NET_FW_IP_VERSION_ANY_NAME = "ANY"
' Protocol
Const NET_FW_IP_PROTOCOL_TCP = 6
Const NET_FW_IP_PROTOCOL_TCP_NAME = "TCP"
Const NET_FW_IP_PROTOCOL_UDP = 17
Const NET_FW_IP_PROTOCOL_UDP_NAME = "UDP"
' Create the firewall manager object.
Dim fwMgr
Set fwMgr = CreateObject("HNetCfg.FwMgr")
' Get the current profile for the local firewall policy.
Dim profile
Set profile = fwMgr.LocalPolicy.CurrentProfile
dim msgOut
msgOut = vbCrLf & "Dumping local firewall profile ..."
' Print the Profile information
Select Case profile.Type
Case NET_FW_PROFILE_DOMAIN msgOut = msgOut & "Type: " & _
NET_FW_PROFILE_DOMAIN_NAME & vbcrlf
Case NET_FW_PROFILE_STANDARD msgOut = msgOut & "Type: " & _
NET_FW_PROFILE_STANDARD_NAME & vbcrlf
End Select
WScript.Echo(msgOut)
msgOut = "Firewall Enabled: " & profile.FirewallEnabled & vbCrLf
msgOut = msgOut & "Exceptions Not Allowed: " & _
profile.ExceptionsNotAllowed & vbCrLf
msgOut = msgOut & "Notifications Disabled: " & _
profile.NotificationsDisabled & vbCrLf
msgOut = msgOut & "UnicastResponsestoMulticastBroadcastDisabled: " & _
profile.UnicastResponsestoMulticastBroadcastDisabled & vbCrLf
WScript.Echo(msgOut)
' Print the Remote Admin settings.
Dim RASettings
Set RASettings = profile.RemoteAdminSettings
msgOut = "Remote Administration Enabled: " & RASettings.Enabled & vbCrLf
Select Case RASettings.IpVersion
Case NET_FW_IP_VERSION_V4 msgOut = msgOut & _
"Remote Administration IP Version: " & _
NET_FW_IP_VERSION_V4_NAME & vbCrLf
Case NET_FW_IP_VERSION_V6 msgOut = msgOut & _
"Remote Administration IP Version: " & _
NET_FW_IP_VERSION_V6_NAME & vbCrLf
Case NET_FW_IP_VERSION_ANY msgOut = msgOut & _
"Remote Administration IP Version: " & _
NET_FW_IP_VERSION_ANY_NAME & vbCrLf
End Select
Select Case RASettings.Scope
Case NET_FW_SCOPE_ALL msgOut = msgOut & _
"Remote Administration Scope: " & _
NET_FW_SCOPE_ALL_NAME & vbCrLf
Case NET_FW_SCOPE_LOCAL_SUBNET msgOut = msgOut & _
"Remote Administration Scope: " & _
NET_FW_SCOPE_LOCAL_SUBNET_NAME & vbCrLf
Case NET_FW_SCOPE_CUSTOM msgOut = msgOut & _
"Remote Administration Scope: " & _
NET_FW_SCOPE_CUSTOM_NAME & vbCrLf
End Select
msgOut = msgOut & "Remote Administration RemoteAddresses: " & _
RASettings.RemoteAddresses & vbCrLf
WScript.Echo( msgOut & vbCrLf)
' Print the ICMP Settings.
Dim icmpSettings
Set icmpSettings = profile.IcmpSettings
msgOut = "ICMP Settings:" & vbCrLf
msgOut = msgOut & " AllowOutboundDestinationUnreachable: " & _
icmpSettings.AllowOutboundDestinationUnreachable & vbCrLf
msgOut = msgOut & " AllowOutboundSourceQuench: " & _
icmpSettings.AllowOutboundSourceQuench & vbCrLf
msgOut = msgOut & " AllowRedirect: " & _
icmpSettings.AllowRedirect & vbCrLf
msgOut = msgOut & " AllowInboundEchoRequest: " & _
icmpSettings.AllowInboundEchoRequest & vbCrLf
msgOut = msgOut & " AllowInboundRouterRequest: " & _
icmpSettings.AllowInboundRouterRequest & vbCrLf
msgOut = msgOut & " AllowOutboundTimeExceeded: " & _
icmpSettings.AllowOutboundTimeExceeded & vbCrLf
msgOut = msgOut & " AllowOutboundParameterProblem: " & _
icmpSettings.AllowOutboundParameterProblem & vbCrLf
msgOut = msgOut & " AllowInboundTimestampRequest: " & _
icmpSettings.AllowInboundTimestampRequest & vbCrLf
msgOut = msgOut & " AllowInboundMaskRequest: " & _
icmpSettings.AllowInboundMaskRequest & vbCrLf
WScript.Echo( msgOut & vbCrLf)
' Print all the globally open ports.
msgOut = "Globally Open Ports: " & profile.GloballyOpenPorts.Count & vbCrLf
WScript.Echo( msgOut )
msgOut = ""
Dim port
For Each port In profile.GloballyOpenPorts
msgOut = msgOut & " Name: " & port.Name & vbCrLf
msgOut = msgOut & " Port Number: " & port.Port & vbCrLf
Select Case port.Protocol
Case NET_FW_IP_PROTOCOL_TCP msgOut = msgOut & _
" IP Protocol: " & NET_FW_IP_PROTOCOL_TCP_NAME & vbCrLf
Case NET_FW_IP_PROTOCOL_UDP msgOut = msgOut & _
" IP Protocol: " & NET_FW_IP_PROTOCOL_UDP_NAME & vbCrLf
End Select
msgOut = msgOut & " BuiltIn: " & port.BuiltIn & vbCrLf
Select Case port.IpVersion
Case NET_FW_IP_VERSION_V4 msgOut = msgOut & _
" IP Version: " & NET_FW_IP_VERSION_V4_NAME & vbCrLf
Case NET_FW_IP_VERSION_V6 msgOut = msgOut & _
" IP Version: " & NET_FW_IP_VERSION_V6_NAME & vbCrLf
Case NET_FW_IP_VERSION_ANY msgOut = msgOut & _
" IP Version: " & NET_FW_IP_VERSION_ANY_NAME & vbCrLf
End Select
Select Case port.Scope
Case NET_FW_SCOPE_ALL msgOut = msgOut & _
" Scope: " & NET_FW_SCOPE_ALL_NAME & vbCrLf
Case NET_FW_SCOPE_LOCAL_SUBNET msgOut = msgOut & _
" Scope: " & NET_FW_SCOPE_LOCAL_SUBNET_NAME & vbCrLf
Case NET_FW_SCOPE_CUSTOM msgOut = msgOut & _
" Scope: " & NET_FW_SCOPE_CUSTOM_NAME & vbCrLf
End Select
msgOut = msgOut & " RemoteAddresses: " & _
port.RemoteAddresses & vbCrLf
msgOut = msgOut & " Enabled: " & _
port.Enabled & vbCrLf & vbCrLf
WScript.Echo( msgOut )
msgOut = ""
Next
' Print all the services
msgOut = "Services: " & profile.Services.Count & vbCrLf
WScript.Echo( msgOut )
msgOut = ""
Dim service
For Each service In profile.Services
msgOut = msgOut & " Name: " & _
service.Name & vbCrLf
msgOut = msgOut & " Type: " & _
service.Type & vbCrLf
msgOut = msgOut & " Customized: " & _
service.Customized & vbCrLf
Select Case service.IpVersion
Case NET_FW_IP_VERSION_V4 msgOut = msgOut & _
" IP Version: " & NET_FW_IP_VERSION_V4_NAME & vbCrLf
Case NET_FW_IP_VERSION_V6 msgOut = msgOut & _
" IP Version: " & NET_FW_IP_VERSION_V6_NAME & vbCrLf
Case NET_FW_IP_VERSION_ANY msgOut = msgOut & _
" IP Version: " & NET_FW_IP_VERSION_ANY_NAME & vbCrLf
End Select
Select Case service.Scope
Case NET_FW_SCOPE_ALL msgOut = msgOut & _
" Scope: " & NET_FW_SCOPE_ALL_NAME & vbCrLf
Case NET_FW_SCOPE_LOCAL_SUBNET msgOut = msgOut & _
" Scope: " & NET_FW_SCOPE_LOCAL_SUBNET_NAME & vbCrLf
Case NET_FW_SCOPE_CUSTOM msgOut = msgOut & _
" Scope: " & NET_FW_SCOPE_CUSTOM_NAME & vbCrLf
End Select
msgOut = msgOut & " RemoteAddresses: " & _
service.RemoteAddresses & vbCrLf
msgOut = msgOut & " Enabled: " & _
service.Enabled & vbCrLf
WScript.Echo( msgOut )
msgOut = ""
'Display header for Service Ports list
msgOut = msgOut & "Service: " & service.Name & " Globally Open Ports: " & _
service.GloballyOpenPorts.Count & vbCrLf
For Each port In service.GloballyOpenPorts
msgOut = msgOut & " Name: " & _
port.Name & vbCrLf
msgOut = msgOut & " Port Number: " & _
port.Port & vbCrLf
Select Case port.Protocol
Case NET_FW_IP_PROTOCOL_TCP msgOut = msgOut & _
" IP Protocol: " & NET_FW_IP_PROTOCOL_TCP_NAME & vbCrLf
Case NET_FW_IP_PROTOCOL_UDP msgOut = msgOut & _
" IP Protocol: " & NET_FW_IP_PROTOCOL_UDP_NAME & vbCrLf
End Select
msgOut = msgOut & " BuiltIn: " & port.BuiltIn & vbCrLf
Select Case port.IpVersion
Case NET_FW_IP_VERSION_V4 msgOut = msgOut & _
" IP Version: " & NET_FW_IP_VERSION_V4_NAME & vbCrLf
Case NET_FW_IP_VERSION_V6 msgOut = msgOut & _
" IP Version: " & NET_FW_IP_VERSION_V6_NAME & vbCrLf
Case NET_FW_IP_VERSION_ANY msgOut = msgOut & _
" IP Version: " & NET_FW_IP_VERSION_ANY_NAME & vbCrLf
End Select
Select Case port.Scope
Case NET_FW_SCOPE_ALL msgOut = msgOut & _
" Scope: " & NET_FW_SCOPE_ALL_NAME & vbCrLf
Case NET_FW_SCOPE_LOCAL_SUBNET msgOut = msgOut & _
" Scope: " & NET_FW_SCOPE_LOCAL_SUBNET_NAME & vbCrLf
Case NET_FW_SCOPE_CUSTOM msgOut = msgOut & _
" Scope: " & NET_FW_SCOPE_CUSTOM_NAME & vbCrLf
End Select
msgOut = msgOut & " RemoteAddresses: " & _
port.RemoteAddresses & vbCrLf
msgOut = msgOut & " Enabled: " & _
port.Enabled & vbCrLf & vbCrLf
Next
WScript.Echo( msgOut )
msgOut = ""
Next
' Print all the authorized applications
msgOut = "Authorized Applications: " & _
profile.AuthorizedApplications.Count & vbCrLf
Dim app
For Each app In profile.AuthorizedApplications
msgOut = msgOut & " Name: " & _
app.Name & vbCrLf
msgOut = msgOut & " Image Filename " & _
app.ProcessImageFileName & vbCrLf
Select Case app.IpVersion
Case NET_FW_IP_VERSION_V4 msgOut = msgOut & _
" IP Version: " & NET_FW_IP_VERSION_V4_NAME & vbCrLf
Case NET_FW_IP_VERSION_V6 msgOut = msgOut & _
" IP Version: " & NET_FW_IP_VERSION_V6_NAME & vbCrLf
Case NET_FW_IP_VERSION_ANY msgOut = msgOut & _
" IP Version: " & NET_FW_IP_VERSION_ANY_NAME & vbCrLf
End Select
Select Case app.Scope
Case NET_FW_SCOPE_ALL msgOut = msgOut & _
" Scope: " & NET_FW_SCOPE_ALL_NAME & vbCrLf
Case NET_FW_SCOPE_LOCAL_SUBNET msgOut = msgOut & _
" Scope: " _
& NET_FW_SCOPE_LOCAL_SUBNET_NAME & vbCrLf
Case NET_FW_SCOPE_CUSTOM msgOut = msgOut & _
" Scope: " & NET_FW_SCOPE_CUSTOM_NAME & vbCrLf
End Select
msgOut = msgOut & " RemoteAddresses: " & _
app.RemoteAddresses & vbCrLf
msgOut = msgOut & " Enabled: " & _
app.Enabled & vbCrLf
WScript.Echo( msgOut )
msgOut = ""
Next
WScript.echo ("The End")