Как избежать всплывающего окна брандмауэра Windows

Моя организация производит набор приложений Windows, которые используют сеть, поэтому, когда пользователи впервые запускают наше программное обеспечение, брандмауэр Windows (если он запущен) вызывает всплывающее окно , информируя пользователя о том, что наши приложения пытаются использовать сеть, предлагая пользователю разрешить или запретить доступ.

Это происходит с множеством других приложений (например, Spotify), но мы хотели бы предотвратить появление таких всплывающих окон, поскольку они могут быть немного проблематичными для наших пользователей. Некоторые приложения (MSN Messenger, GoogeTalk) работают, даже не заставляя брандмауэр предупреждать пользователя, и мы хотели бы сделать то же самое.

Мы успешно сделали это в Windows XP, заставив наш установщик записать соответствующие ключи реестра по адресу:

HKLM \ SYSTEM \ ControlSet001 \ Services \ SharedAccess \ Parameters \ FirewallPolicy \ StandardProfile \ AuthorizedApplications \ List

Однако это не имеет такого же эффекта в Windows 7 - всплывающие окна брандмауэра все равно появляются.

Есть идеи, как это сделать? (Наши установщики и программное обеспечение имеют цифровую подпись.)

Спасибо Том Дэвис

10
задан Tom Davies 24 August 2010 в 16:06
поделиться

3 ответа

На самом деле я не рекомендую делать это проблемой установщика по нескольким причинам:

  • Существует несколько программных брандмауэров. там; ты не можешь кодировать и тестировать для всех.

  • Некоторые (например, встроенные окна брандмауэр) имеют API, которые не позволяют настроить порт исключения, когда FW отключено.
    Если пользователь позже включит FW, вы снова поливают из шланга.

  • Могут быть внешние брандмауэры это до сих пор тебя понимает.

Вместо этого я предпочитаю делать это в виде документации, чтобы пользователи и администраторы были полностью осведомлены о сетевых требованиях. Однажды мне пришлось гуглить веб-сайт Apple, чтобы выяснить, какие порты нужны iTunes, и я клянусь Богом, что их было действительно трудно найти, поскольку они пытались смягчить все для потребителей.

Однако, если вы хотите приложить максимум усилий при установке, у WiX есть расширение Custom Action для взаимодействия с брандмауэром, а не для написания вашего собственного Custom Action. Даже если вы используете другой инструмент, такой как InstallShield, вы можете обернуть это поведение в модуль слияния WiX, а затем использовать его с помощью вашего основного инструмента по выбору.

Вы можете прочитать об этом здесь:

Блог Joy Of Setup

и

Документация WiX

6
ответ дан 3 December 2019 в 21:57
поделиться

В установщике (т.е. как администратор с повышенными правами) вам нужно написать код для доступа к API брандмауэра Windows и добавить свое приложение как исключение

1
ответ дан 3 December 2019 в 21:57
поделиться

Вы можете добавить исключения в брандмауэр Windows, открыв netsh, утилиту, встроенную в Windows, но эта утилита работает по-разному в Windows XP и Windows 7. Вот команды, которые я использовал:

Windows XP:

добавить: брандмауэр netsh добавить разрешенный режим программы=ВКЛЮЧИТЬ профиль=ВСЕ имя=[имя исключения] программа=[путь к программе]

удалить: брандмауэр netsh удалить разрешенный профиль программы = ВСЕ программы = [путь к программе]

Windows 7:

добавить: брандмауэр netsh advfirewall добавить правило действие=разрешить профиль=любой протокол=любой включить=да направление=[вход|выход] имя=[имя исключения] программа=[путь к программе]

удалить: профиль удаления правила брандмауэра advfirewall=любое имя=[имя исключения]

9
ответ дан 3 December 2019 в 21:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: