Bir toplu iş dosyasında Windows'ta belirli bağlantı noktalarını bir toplu iş dosyası aracılığıyla açmak için herhangi bir yol var mı? Yükleyicinin bunu, kullanıcı tarafından manuel olarak yapmaktan ziyade sunucu uygulamamız için yapmasını sağlamak güzel olurdu.Toplu iş dosyası aracılığıyla Windows güvenlik duvarında bağlantı noktaları nasıl açılır
cevap
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
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%
)
Çözümünüzü denedim (ancak% RULENAME% 'yi yankılananlarda% RUENAME% ile değiştirerek ...) ve beklendiği gibi çalışıyor! –
Teşekkürler bu çok yardımcı oldu – wishman
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. –