В Windows программное обеспечение должно быть настроено как исключение для брандмауэра Windows для анализа входящих пакетов.
Я попробовал два метода, чтобы установить программное обеспечение в качестве исключения брандмауэра. И оба эти метода сработали хорошо.
Первый метод — использовать INetFwPolicy2 .
Код: Выделить всё
INetFwRule2 inboundRule = (INetFwRule2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FWRule"));
inboundRule.Enabled = true;
inboundRule.Profiles = 2 | 4;
inboundRule.Name = "MyApp";
inboundRule.ApplicationName = System.Reflection.Assembly.GetExecutingAssembly().Location;
// Now add the rule
INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2"));
firewallPolicy.Rules.Add(inboundRule);
Код: Выделить всё
@echo off
netsh advfirewall firewall delete rule name="MyApp"
netsh advfirewall firewall add rule name="MyApp" dir=in action=allow program="%~dp0%MyApp.exe" enable=yes
Когда происходит ложное срабатывание Защитника Windows, мы просим Microsoft изменить файл определения.
Однако этот метод требует, чтобы Microsoft изменяла файл определения каждый раз при обновлении программного обеспечения.
Кроме того, даже если изменение файла определения Защитника Windows не позволяет Microsoft однократное обнаружение ложных срабатываний может привести к повторному появлению ложных срабатываний.
Пожалуйста, дайте мне идеи о том, как предотвратить блокировку моего программного обеспечения Защитником Windows.
Подробнее здесь: https://stackoverflow.com/questions/784 ... p-software