Heute mal was aus der Windows Ecke
Ich stand vor der Aufgabe in einem Windows Netz bestimmte Dateien bzw Verzeichnisse zu suchen. Gut ich hätte an alle 200 Rechner gehen können aber das wäre ziemlicher Aufwand und zudem würde man die Nutzer vom Arbeiten abhalten. Weiterer Grund warum das nicht möglich war , ist das einige Rechner irgendwo auf der Welt sind per VPN.
Nun gut , was also machen?
Windows bietet genügend Mittel an wenn man raus findet wie man sie nutzt.
Was braucht man? Nicht viel , nur die Gute Alte Eingabeaufforderung und einen Editor.
@echo off REM H = Hostliste REM U = Datei/Verzeichnis REM G = Guest/ Hostnamen REM Hostliste definieren echo Name der Hostliste eingeben z.B. host.txt : set /P H= REM Datei oder Verzeichnis definieren echo Dateinamen eingeben mit .Endung oder Verzeichnis*: set /P U= REM Zeit Format einstellen For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a:%%b) REM Schleife %%G setzt den Hostnamen aus der Liste REM %H% wurde oben definiert und wird () eingesetzt REM %U% setzt den Suchbegriff ein und wird mit an den Log Namen mit angehaengt if exist C:LOG echo "Folder already exists" if not exist "C:LOG" mkdir C:LOG if exist C:LOG%U% echo "Folder already exists" if not exist "C:LOG%U%" mkdir C:LOG%U% for /F %%G in (%H%) do ( echo %date%_%mytime% >> C:LOG%U%%%G.log ping -n 1 -4 %%G >> c:log%U%%%G.log ping -n 1 -6 %%G >> c:log%U%%%G.log dir \%%Gc$*%U% /b /s >> c:log%U%%%G.C.%U%.log dir \%%Gd$*%U% /b /s >> c:log%U%%%G.D.%U%.log )
Das Script funktioniert soweit ganz gut, so lang man als Administrator arbeitet.
Beim lesen wird der Ein oder andere sagen , man könnte die if ja noch mit else etc abfangen. Könnte man 😉 aber mir war erstmal die Funktion an sich wichtig , das schöne kann man bei Gelegenheit nochmal anpassen.