//
// constants and globals
//
var NET_FW_RULE_DIR_IN = 1;
var NET_FW_IP_PROTOCOL_TCP = 6;
var NET_FW_IP_PROTOCOL_ANY = 256;
var NET_FW_ACTION_BLOCK = 0;
var NET_FW_ACTION_ALLOW = 1;
var iSCSIPort = 3260;
var PortOpeningEnabled = false;
var wshShell = new ActiveXObject("WScript.Shell");
var wshEnv = wshShell.Environment("Process");
var BinaryPath = wshEnv("SYSTEMROOT") + "\\system32\\svchost.exe";
//
// set the iSCSI port if passed as a parameter
//
if (WScript.Arguments.Length == 1)
{
iSCSIPort = WScript.Arguments(0);
}
//
// Advanced-Firewall;
//
var objFWPolicy2 = new ActiveXObject("HNetCfg.FwPolicy2");
for (var FWRules = new Enumerator(objFWPolicy2.Rules);
!FWRules.atEnd();
FWRules.moveNext())
{
var objRule = FWRules.item();
//
// look if a rule allows the service binary
//
if ( true == objRule.Enabled &&
NET_FW_ACTION_ALLOW == objRule.Action &&
NET_FW_RULE_DIR_IN == objRule.Direction &&
(NET_FW_IP_PROTOCOL_ANY == objRule.Protocol ||
NET_FW_IP_PROTOCOL_TCP == objRule.Protocol) &&
( iSCSIPort == objRule.LocalPorts) )
{