Dienstag, 13. März 2012

Windows Firewall mit Batch ein-/ausschalten (XP und Windows Vista oder Windows 7)

Eine kleine Anleitung wie man mit einem .bat Script den integrierten Firewall von Windows ein und ausschalten kann. Das hier ist mit einem Menu es gibt auch die Variante mit einem Toogle System (weiter unten).
Damit kann man mit einem Klick auf ein Batch Script die Funktion ausschalten und wieder einschalten, ohne mühsam in den Einstellungen zu suchen.
Bei Windows XP geht das folgendermassen:

@echo off
title Firewall Config:
cls
:start
REM Batch file zum starten und ausschalten vom windows xp firewall
echo.
echo    +---------- Firewall Menu ------------+
echo.                                          
echo       1. Check Status vom Windows Firewall
echo       2. Schalte Windows Firewall ein
echo       3. Schalte Windows Firewall aus     
echo       4. Exit                               
echo.                                      
echo    +-------------------------------------+
echo.
set choice=
set /p choice=Firewall?
if not '%choice%'=='' set choice=%choice:~0,1%
if '%choice%'=='1' goto check
if '%choice%'=='2' goto enable
if '%choice%'=='3' goto disable
if '%choice%'=='4' goto exit
echo '%choice%' diese Eingabe ist ungültig, bitte gebe eine Zahl zwischen 1-4 ein
echo.
goto start
:check
cls
netsh firewall show opmod
goto start
:enable
cls
echo Schalte Windows Firewall ein...
netsh firewall set opmode enable
goto start
:disable
cls
echo Schalte Windows Firewall aus...
netsh firewall set opmode disable
goto start
:exit


Diesen Text als firewallXP.bat speichern (notepad öffnen, einfügen, speichern unter, andere Datei, firewallxp.bat) ausführen, freude haben.
Achtung man muss es als Administrator laufen lassen. Dazu erstellst du eine Verknüpfung und startest sie mit Administratorenrechten. Oder von der Console wenn du sie als Admin gestartet hast. Wenn du nicht weisst was du tust lass es bleiben. Benutzung auf eigene Gefahr!

Bei Windows 7 oder Vista geht es anders da der Befehl netsh firewall durch netsh advfirewall ersetzt wurde und die Syntax wurde auch leicht verändert.

@echo on
title Firewall Config:
cls
:start
REM Batch file zum starten und ausschalten vom windows firewall
echo.
echo    +---------- Firewall Menu ------------+
echo.                                          
echo       1. Check Status vom Windows Firewall
echo       2. Schalte Windows Firewall ein
echo       3. Schalte Windows Firewall aus     
echo       4. Exit                               
echo.                                      
echo    +-------------------------------------+
echo.
set choice=
set /p choice=Firewall?
if not '%choice%'=='' set choice=%choice:~0,1%
if '%choice%'=='1' goto check
if '%choice%'=='2' goto enable
if '%choice%'=='3' goto disable
if '%choice%'=='4' goto exit
echo '%choice%' diese Eingabe ist ungültig, bitte gebe eine Zahl zwischen 1-4 ein
echo.
goto start
:check
cls
netsh advfirewall show currentprofile state
goto start
:enable
cls
echo Schalte Windows Firewall ein...
netsh advfirewall set currentprofile state on
goto start
:disable
cls
echo Schalte Windows Firewall aus...
netsh advfirewall set currentprofile state off
goto start
pause
:exit


Auch hier braucht ihr Administratorenrechte sonst geht es nicht. Einfach Rechtsklick auf das bat. und Mit Administratorenrechten ausführen:

Mit Toogle bat Script kann man ohne Menu einfach die Firewall an und ausschalten. Für Windows 7 + Vista. (XP weiter unten)

Auf einem Englischsprachigem System:
@echo off &setlocal
 for /f "tokens=2" %%a in ('netsh advfirewall show currentprofile state^|findstr /b /c:"State"') do (
 if "%%a"=="ON" (
 netsh advfirewall set currentprofile state off >nul
set var1= Inaktiv
 ) else (
 netsh advfirewall set currentprofile state on >nul
set var1= Aktiv
 )
 )
echo.
ECHO Windows Firewall ist nun %var1%...
ping -n 4 localhost >nul


Auf einem Deutschen System muss man die Begriffe Status und ON/OFF abändern :


@echo on &setlocal
 for /f "tokens=2" %%a in ('netsh advfirewall show currentprofile state^|findstr /b /c:"Status"') do (
 if "%%a"=="EIN" (
 netsh advfirewall set currentprofile state off >nul
set var1= Inaktiv
 ) else (
 netsh advfirewall set currentprofile state on >nul
set var1= Aktiv
 )
 )
echo.
ECHO Windows Firewall ist nun%var1%...
ping -n 4 localhost >nul


Muss man auch als Admin ausführen.

Hier noch für Windows XP:

Auf Deutsch:

@echo off &setlocal
title Firewall On/Off
 for /f "tokens=3" %%a in ('netsh firewall show opmod^|findstr /b /c:"Betriebsmodus"') do (
 if "%%a"=="Aktiv" (
 netsh firewall set opmode disable >nul
set var1= Inaktiv
 ) else (
 netsh firewall set opmode enable >nul
set var1= Aktiv
goto end
 )
 )
:end
echo.
ECHO Windows XP Firewall ist nun%var1%...
ping -n 4 localhost >nul



Ich hoffe die Info war nützlich!

2 Kommentare: