Möchte man mehrere IP Adressen in die lokale Windows Hosts Datei einpflegen, so kann man folgendes Script verwenden. Dafür wird zu dem Script noch eine weitere Datei benötigt in der die gewünschten IP Adressen enthalten sind.

In dem Script wird auch geprüft ob dies hinzufügende IP Adresse schon vorhanden ist und dementsprechend wird mit der nächsten IP Adresse weiter gearbeitet.

Hier nun das Script:

:: Autor Knut Herter
:: Datum 1.10.2023
::
:: Zweck : In die lokale Hosts Datei muessen der Eintraege a la w.x.y.z www.meine-testdomain.de 
:: hinzugefuegt werden sofern dieser nicht vorhanden sind
::
::@echo off
setlocal enabledelayedexpansion

set "hosts_file=%SystemRoot%\System32\drivers\etc\hosts"

rem Stelle sicher, dass die Eingabedatei vorhanden ist und setze sie als Eingabequelle
set "input_file=input.txt"
if not exist "!input_file!" (
    echo Eingabedatei "!input_file!" nicht gefunden.
    exit /b
)

rem Schleife zum Lesen der Eingabedatei
for /f "tokens=1,2" %%a in (!input_file!) do (
    set "ip_to_check=%%a"
    set "hostname=%%b"

    rem Überprüfen, ob die IP bereits in der Hosts-Datei vorhanden ist
    findstr /C:"!ip_to_check!" "!hosts_file!" >nul
    if !errorlevel! neq 0 (
        echo IP-Adresse !ip_to_check! für !hostname! nicht gefunden. Füge sie hinzu.

        rem IP-Adresse und Hostname zur Hosts-Datei hinzufügen
        echo !ip_to_check!    !hostname! >> "!hosts_file!"
    ) else (
        echo IP-Adresse !ip_to_check! für !hostname! bereits in der Hosts-Datei vorhanden.
    )
)

endlocal

Das Script erwartet die Datei input.txt und muss mit administrativen Rechten gestartet werden. In dieser sehen die Einträge in folgender Form. Ist die Datei nicht vorhanden, dann wir die komplette Verarbeitung abgebrochen.

192.168.1.100 example1.com
10.0.0.1 example2.com
192.168.2.200 example3.com

Natürlich kann man das Script auch ein Domänenumgebung mit einer GPO verwenden.

Möchte man nur eine einzelne IP Adresse aufnehmen, dann kann man auch folgendes Script verwenden: KLICK