У меня есть этот кусок кода, который я нашел и реализовал в соответствии с http://www.activexperts.com/activmonitor/windowsmanagement/scripts/networking/windowsfirewall/
procedure AddExceptionToFirewall (Caption: String; Executable: String);
var
FirewallMsg: OleVariant;
Application: OleVariant;
CurrentProfile: OleVariant;
begin
FirewallMsg:= CreateOLEObject ('HNetCfg.FwMgr');
CurrentProfile:= FirewallMsg.LocalPolicy.CurrentProfile;
Application:= CreateOLEObject ('HNetCfg.FwAuthorizedApplication');
Application.ProcessImageFileName:= Executable;
Application.Name:= Caption;
Application.Scope:= FW_SCOPE_ALL;
Application.IpVersion:= FW_IP_VERSION_ANY;
Application.Enabled:= True;
CurrentProfile.AuthorizedApplications.Add (Application);
end;
Дело в том, что в Windows 7 оно добавляет исключение только как Public, а не как Private, как вы можете видеть в RED здесь
![enter image description here](https://i.stack.imgur.com/rWWx4.png)
Когда установлено только Public, у моей программы возникают проблемы с доступом к моему хосту через FTP-соединение, что делает мою программу бесполезной.
Эта проблема является особенной только для Windows Vista / 7; на XP текущая конфигурация работает нормально.
Пожалуйста, если у вас есть какие-либо подсказки или полезные указатели, поделитесь ими.