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;

Другие вопросы по тегам