From NSIS Wiki
There have been 3 firewall plugin for NSIS: Firewall-Disabler Plugin, NSIS Simple Firewall Plugin and NsisFirewall Plugin. But all of them has some shortcomings, so I just write one: liteFirewall. It's based on nsisFirewall. Thanks to it's author.
- Firewall-Disbler plugin: No one will use it.
- NsisFirewall plug-in: It doesn’t support firewall profiles (private, domain or public) on Vista/Windows 7.
- NSIS Simple Firewall Plugin: It doesn’t support Unicode NSIS.
- liteFirewall plug-in: It support both Unicode NSIS and firewall profiles.
liteFirewall is based on nsisFirewall, and it also allows you to perform easily 2 tasks:
- Add an application to Windows Firewall exception list
- Remove an application from Windows Firewall exception list
The advantage of liteFirewall compared to nsisFirewall is it can automatically figure out the current profile of windows firewall, and add a corresponding rule for your application.
liteFirewall::AddRule "<application path>" "<rule name>" liteFirewall::RemoveRule "<application path>" "<rule name>"
<application path>is the full path to the application you want to be authorized to access the network (or accept incoming connections). <rule name>is the title that will be given to this exception entry in the firewall control panel list.
; Add NOTEPAD to the authorized list liteFirewall::AddRule "$WINDIR\Notepad.exe" "liteFirewall Test" Pop $0 ; Remove NOTEPAD from the authorized list liteFirewall::RemoveRule "$WINDIR\Notepad.exe" "liteFirewall Test" Pop $0
ZIP archive contains the plug-in DLL as well as documentation, source code and sample script.