Remotely check Windows firewall status

As part of my routine auditing process I wanted to check to ensure that the Windows firewall is enabled and set to use its domain profile on all of our Member servers.

Here’s a script to do just that

' Configuration.
' ====================================================================
Dim strFirewallStatus, strComputer, arrComputers
arrComputers = Split("london,brisbane,perth,chicago", ",")

WScript.Echo "-------------------------------------------------------"
WScript.Echo Left("Computer Name" & Space(47),47) & "Status"
WScript.Echo "-------------------------------------------------------"

' Iterate through computers, showing status.
' ====================================================================
For Each strComputer in arrComputers

  ' Required so we don't die on permission errors.
  On Error Resume Next

  Set objReg = GetObject( "winmgmts:{impersonationLevel" &_
  "=impersonate}!\\" & strComputer & "\root\default:StdRegProv")

  If err.number = 0 Then
    objReg.GetDWORDValue &H80000002, "SYSTEM\CurrentControlSet\" &_
    "Services\SharedAccess\Parameters\FirewallPolicy\" &_
    "DomainProfile\", "EnableFirewall",dwValue

    If dwValue <> 0 Then
      strFirewallStatus = "Enabled"
    Else
      strFirewallStatus = "Disabled"
    End If

    WScript.Echo Left(strComputer & Space(47),47) & strFirewallStatus

  Else
    WScript.Echo strComputer & " - Error" & err.number & " : " &_
    err.description
    err.clear
  End if
Next

You’ll need to make sure that you’ve got the relevant permissions on the target computers, otherwise you’ll just get errors.