2013-03-02 22 views

cevap

17

netsh.exe'u kullanın. bir liman argüman alan bir çok basit toplu iş dosyası:

@echo off 
rem -- open port (first argument passed to batch script) 
netsh advfirewall firewall add rule name="Open Port %1" dir=in action=allow protocol=TCP localport=%1 
+2

Not önlenmesine yardımcı olduğunu fırlatma işlemi netsh (veya örneğin sizin toplu iş dosyası gibi netsh başlattı neyse) bağlantı noktası özel durumlarını yapmaya yönetici privledges ihtiyacı vardır. Yükleyiciniz, yükleyicinin yönetici yetkisiyle çalışıp çalışmadığını bağlı olarak genellikle yükleme sırasında bu işleyiş ile baş edebilir. –

7

Bu @Kevin Richardson tarafından sağlanan çözümün bir uzantısıdır. "Netsh advfirewall add rule" komutunun, aynı komutu her çalıştırdığınızda aynı ada sahip yeni bir kural oluşturacağını unutmayın. script aşağıda o

ECHO OFF 
set PORT=8081 
set RULE_NAME="Open Port %PORT%" 

netsh advfirewall firewall show rule name=%RULE_NAME% >nul 
if not ERRORLEVEL 1 (
    rem Rule %RULE_NAME% already exists. 
    echo Hey, you already got a out rule by that name, you cannot put another one in! 
) else (
    echo Rule %RULE_NAME% does not exist. Creating... 
    netsh advfirewall firewall add rule name=%RULE_NAME% dir=in action=allow protocol=TCP localport=%PORT% 
) 
+0

Çözümünüzü denedim (ancak% RULENAME% 'yi yankılananlarda% RUENAME% ile değiştirerek ...) ve beklendiği gibi çalışıyor! –

+0

Teşekkürler bu çok yardımcı oldu – wishman