Здесь вы можете создать правило входящего брандмауэра для порта sql server 1433 с многопрофильным Domain, Public и Private через C #.
Сначала вам нужно импортировать dll из вашей системы «C: \ Windows \ System32 / FirewallAPI.dll».
Добавьте эту DLL к вашему проекту.
Зайдите в обозреватель решений в Visual Studio -> Ссылки-> Добавить ссылку-> нажмите кнопку Обзор рядом с ок и нажмите кнопку отмены -> выберите путь C: \ Windows \ System32 / FirewallAPI.dll и добавьте DLL.
После добавления dll используйте пространство имен «NetFwTypeLib» в своем коде, как показано выше в программе.
использование NetFwTypeLib;
using NetFwTypeLib;
namespace ConsoleAppTestDemo
{
class Program
{
static void Main(string[] args)
{
Type tNetFwPolicy2 = Type.GetTypeFromProgID("HNetCfg.FwPolicy2");
INetFwPolicy2 fwPolicy2 = (INetFwPolicy2)Activator.CreateInstance(tNetFwPolicy2);
// Let's create a new rule
INetFwRule2 inboundRule = (INetFwRule2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FWRule"));
inboundRule.Enabled = true;
//Allow through firewall
inboundRule.Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW;
//For all profile
inboundRule.Profiles = (int)NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_ALL;
//Using protocol TCP
inboundRule.Protocol = 6; // TCP
//Local Port 1433
inboundRule.LocalPorts = "1433";
//Name of rule
inboundRule.Name = "SQLRule";
// Now add the rule
INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2"));
firewallPolicy.Rules.Add(inboundRule);
}
}
}
После этого вы можете проверить входящее правило брандмауэра.
