|
'******************************************************************************
'OpenPrograms-com.vbs
'Author: Peter Costantini, The Microsoft Scripting Guys
'Date: 8/26/04
'Version: 1.0
'This script adds specified programs to the Windows Firewall exceptions list.
'******************************************************************************
Const NET_FW_SCOPE_ALL = 0
Const NET_FW_SCOPE_LOCAL_SUBNET = 1
'First dimension of arrNewApps must equal # of apps to be allowed minus 1.
Dim arrNewApps(2,3)
'Edit this list to add programs to the exceptions list.
'Scope and Enabled are optional properties.
'Default for Scope is NET_FW_SCOPE_ALL. Default for Enabled is True.
arrNewApps(0,0) = "NsLookup" 'Name
arrNewApps(0,1) = "%windir%\system32\nslookup.exe" 'ProcessImageFileName
'Must be a fully qualified path, but can contain environment variables.
arrNewApps(0,2) = NET_FW_SCOPE_ALL 'Scope - default is NET_FW_SCOPE_ALL
arrNewApps(0,3) = True 'Enabled
arrNewApps(1,0) = "Notepad"
arrNewApps(1,1) = "%windir%\system32\notepad.exe"
arrNewApps(1,2) = NET_FW_SCOPE_LOCAL_SUBNET
arrNewApps(1,3) = True
arrNewApps(2,0) = "Calculator"
arrNewApps(2,1) = "%windir%\system32\calc.exe"
arrNewApps(2,2) = NET_FW_SCOPE_ALL
arrNewApps(2,3) = True
On Error Resume Next
'Create the firewall manager object.
Set objFwMgr = CreateObject("HNetCfg.FwMgr")
If Err <> 0 Then
WScript.Echo "Unable to connect to Windows Firewall."
WScript.Quit
End If
'Get the current profile for the local firewall policy.
Set objProfile = objFwMgr.LocalPolicy.CurrentProfile
Set colAuthorizedApps = objProfile.AuthorizedApplications
WScript.Echo VbCrLf & "New authorized applications added:"
For i = 0 To UBound(arrNewApps)
'Create an FwAuthorizedApplication object
Set objAuthorizedApp = CreateObject("HNetCfg.FwAuthorizedApplication")
objAuthorizedApp.Name = arrNewApps(i,0)
objAuthorizedApp.ProcessImageFileName = arrNewApps(i, 1)
objAuthorizedApp.Scope = arrNewApps(i, 2)
objAuthorizedApp.Enabled = arrNewApps(i, 3)
colAuthorizedApps.Add objAuthorizedApp
If Err = 0 Then
WScript.Echo VbCrLf & "Name: " & objAuthorizedApp.Name
WScript.Echo " Process Image File: " & _
objAuthorizedApp.ProcessImageFileName
WScript.Echo " Scope: " & objAuthorizedApp.Scope
WScript.Echo " Enabled: " & objAuthorizedApp.Enabled
Else
WScript.Echo VbCrLf & "Unable to add application: " & arrNewApps(i,0)
WScript.Echo " Error Number:" & Err.Number
WScript.Echo " Source:" & Err.Source
WScript.Echo " Description:" & Err.Description
End If
Err.Clear
Next
Set colAuthorizedApps = objProfile.AuthorizedApplications
WScript.Echo VbCrLf & "All listed applications after operation:"
For Each objApp In colAuthorizedApps
WScript.Echo VbCrLf & "Name: " & objApp.Name
WScript.Echo " Process Image File: " & objApp.ProcessImageFileName
WScript.Echo " Scope: " & objApp.Scope
WScript.Echo " Remote Address: " & objApp.RemoteAddress
WScript.Echo " Enabled: " & objApp.Enabled
Next
|
|