我想为我制作一个小批量脚本,这将帮助我尽可能地限制我的计算机上的跟踪和间谍。我使用TinyWall作为我的主要防火墙,因为它非常轻巧。通过它的“显示连接”能力,我开始认为我可以停止持续允许特定的端口/程序,只在我真正需要时打开它们。
所以我写了(经过大量研究)批处理脚本,它将添加防火墙例外(打开几个端口),打开特定程序。之后,如果程序的进程正在运行,我会在任务列表中不断地使用if语句(当批处理脚本运行时)查找。如果没有,它将删除防火墙例外并关闭程序。
当我运行脚本(使用“cmd.exe / k”)时,程序会打开,但似乎异常不适用,因为程序报告没有Internet连接。程序打开后,cmd窗口也会立即关闭(没有“cmd.exe / k”)。我不希望这种情况发生。
我觉得奇怪的是(使用cmd的/ k参数)我只得到响应“语法错误”。 (翻译自我的语言,不知道它最初的报道)没有任何进一步的信息。
我需要在管理cmd窗口中运行脚本。有没有办法利用它?它在我使用“advfirewall”(高级防火墙,我猜)命令之前工作,但是一些命令手册的帮助告诉我,普通的“防火墙”命令已经过时,我应该使用“advfirewall firewall”。
有人知道我是如何实现目标的吗?我真的很感激。
PS:很抱歉长篇文章。
TLDR:我的脚本不起作用。如果您想帮助我,请查看代码。
@echo OFF
SETLOCAL
echo Adding Firewall Exceptions for Origin ...
netsh advfirewall firewall add rule name="OriginIn port 3216" dir=in protocol=TCP localport=3216 action=allow
netsh advfirewall firewall add rule name="OriginOut port 3216" dir=out protocol=TCP localport=3216 action=allow
netsh advfirewall firewall add rule name="OriginIn port 49218" dir=in protocol=TCP localport=49218 action=allow
netsh advfirewall firewall add rule name="OriginOut port 49218" dir=out protocol=TCP localport=49218 action=allow
netsh advfirewall firewall add rule name="OriginIn port 49819" dir=in protocol=TCP localport=49819 action=allow
netsh advfirewall firewall add rule name="OriginOut port 49819" dir=out protocol=TCP localport=49819 action=allow
timeout 2
echo Done. Starting Origin. Have fun gaming!
start "Origin" /DE:\Origin\ Origin.exe
tasklist /FI "IMAGENAME eq Origin.exe" 2>NUL | find /I /N "Origin.exe">NUL
if %ERRORLEVEL% GTR 0
(
netsh advfirewall firewall delete rule name "OriginIn port 3216"
netsh advfirewall firewall delete rule name "OriginOut port 3216"
netsh advfirewall firewall delete rule name "OriginIn port 49218"
netsh advfirewall firewall delete rule name "OriginOut port 49218"
netsh advfirewall firewall delete rule name "OriginIn port 49819"
netsh advfirewall firewall delete rule name "OriginOut port 49819"
)
echo Deleting Firewall Exceptions (Reason: Origin isn't running anymore) ...
timeout 5
exit
答案 0 :(得分:0)
start "Origin" /DE:\Origin\ Origin.exe
仅限猜测:start
的帮助表明D
和E
之间应该有一个空格。