Displaying all Properties
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")
Send comments about this topic to Microsoft
Build date: 2/14/2012
fix a typo here please
"Displaying all Properties" script has a typo, an "&" is missing on line 222.
... service.Name " Globally Open Ports: " ...
should read
... service.Name & " Globally Open Ports: " ...
Just my 2c...
Thanks, this has been fixed.
- 4/30/2007
- alexms_2001
- 6/17/2010
- jenhayes