[UMU WSH 教程](32) 访问剪贴板(2)
[UMU WSH 教程](33) 正则表达式
[UMU WSH 教程](34) ScriptingUtils.DateTimeObject 对象
本文适用于 XP 后系统(包括 XP)。hnetcfg.dll 提供了管理 Windows 内置防火墙的对象:HNetCfg.HNetShare、HNetCfg.NATUPnP、HNetCfg.FwMgr、HNetCfg.FwOpenPort、HNetCfg.FwAuthorizedApplication。
参考 URL:
http://msdn.microsoft.com/en-us/library/bb736292(VS.85).aspx
http://www.activexperts.com/activmonitor/windowsmanagement/scripts/networking/windowsfirewall/
下面举几个例子:
// UMU @ 2009-3-20 09:17
// AddAllowedPort.js
// 防火墙 - 例外 - 添加例外端口
var NET_FW_IP_PROTOCOL_TCP = 6;
var NET_FW_IP_PROTOCOL_UDP = 17;
function WFW_AddAllowedPort(name, protocol, port, state)
{
var objFirewall = new ActiveXObject("HNetCfg.FwMgr");
var objProfile = objFirewall.LocalPolicy.CurrentProfile;
var objPort = new ActiveXObject("HNetCfg.FwOpenPort");
objPort.Name = name;
objPort.Port = port;
objPort.Protocol = protocol;
objPort.Enabled = state;
var colPorts = objProfile.GloballyOpenPorts;
colPorts.Add(objPort);
delete colPorts;
delete objPort;
delete objProfile;
delete objFirewall;
}
WFW_AddAllowedPort("UMU", NET_FW_IP_PROTOCOL_UDP, 618, true);
// UMU @ 2009-3-23 15:51
// AddAuthorizedApplication.js
// 防火墙 - 例外 - 添加例外程序
var objFirewall = new ActiveXObject("HNetCfg.FwMgr");
var oProfile = objFirewall.LocalPolicy.CurrentProfile;
var objAuthApp = new ActiveXObject("HNetCfg.FwAuthorizedApplication");
objAuthApp.Name = "notepad.exe";
objAuthApp.IPVersion = 2;
objAuthApp.ProcessImageFileName = "C:\\Windows\\system32\\notepad.exe";
objAuthApp.RemoteAddresses = "*";
objAuthApp.Scope = 0;
objAuthApp.Enabled = true;
var colApplications = oProfile.AuthorizedApplications;
colApplications.Add(objAuthApp);
delete objAuthApp;
delete objFirewall;
// UMU @ 2009-3-23 15:51
// AllowInboundEchoRequest.js
// 防火墙 - ICMP 设置 - 允许传入回显请求
var objFirewall = new ActiveXObject("HNetCfg.FwMgr");
var objProfile = objFirewall.LocalPolicy.CurrentProfile;
objProfile.IcmpSettings.AllowInboundEchoRequest = true;
delete objProfile;
delete objFirewall;
// UMU @ 2009-3-23 15:58
// DisableFirewall.js
// 防火墙 - 禁用防火墙
var objFirewall = new ActiveXObject("HNetCfg.FwMgr");
var objProfile = objFirewall.LocalPolicy.CurrentProfile;
//objProfile.FirewallEnabled = true;
objProfile.FirewallEnabled = false;
delete objProfile;
delete objFirewall;
// UMU @ 2009-3-23 16:05
// EnableRemoteDesktop.js
// 防火墙 - 例外 - 启用远程桌面
var NET_FW_SERVICE_FILE_AND_PRINT = 0;
var NET_FW_SERVICE_UPNP = 1;
var NET_FW_SERVICE_REMOTE_DESKTOP = 2;
var NET_FW_SCOPE_ALL = 0;
var NET_FW_SCOPE_LOCAL_SUBNET = 1;
var objFwMgr = new ActiveXObject("HNetCfg.FwMgr");
var objProfile = objFwMgr.LocalPolicy.CurrentProfile;
var objService = objProfile.Services.Item(NET_FW_SERVICE_REMOTE_DESKTOP);
objService.Enabled = true
objService.RemoteAddresses = "*"
//objService.Scope = NET_FW_SCOPE_ALL
delete objService;
delete objProfile;
delete objFwMgr;