C# - создать правило брандмауэра Windows с несколькими профилями
Я использую INetFwRule для создания правила брандмауэра Windows. Я хочу, чтобы это правило распространялось как на домен, так и на частный профиль, но на общедоступный профиль. Но свойство Profiles не поддерживает.
Пожалуйста помоги.
1 ответ
INetFwRule ожидает, что несколько профилей будут объединены. Например, чтобы создать правило брандмауэра Windows, которое включено как для домена, так и для частного, вам необходимо сделать следующее:
INetFwRule2 rule = (INetFwRule2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FWRule"));
rule.Profiles = (int)NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PRIVATE | (int)NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_DOMAIN;
Если вы хотите включить его для всех профилей, вам не нужно ИЛИ все 3 профиля вместе, поскольку есть флаг ALL:
INetFwRule2 rule = (INetFwRule2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FWRule"));
rule.Profiles = (int)NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_ALL;