IP MAC Standard Gateway und DNS per Batch abfragen und in eine Datei schreiben
kurz vor dem ausflippen
Hi Leute,
ich versuche schon seit gestern eine simple batch zusammenzubasteln, welche ein paar Informationen über den lokalen PC in eine Datei schreibt.
Dabei möchte ich das ganze gerne so aufgebaut haben dass die Daten mit ; getrennt sind, damit ich Sie mir einfach in Excel in Spalten importieren kann.
Ich stelle mir vor dass die batch auf jedem Rechner im LAN ausgeführt und alles in eine zentrale txt auf den Server geschrieben wird.
Dachte eigentlich dass wär einfach - aber ich hab schon so lange nichts mehr mit batch gemacht dass ich jetzt gar nicht mehr klar komme. ;(
Bisher habe ich folgendes:
<code]>
@echo OFF
SETLOCAL
@set LOG=\\srv01\data\computers.log
@set MAC=
for /f "skip=3 tokens=1" %%i in ('getmac.exe') do if not defined mac set mac=%%i
@set IP=
for /f "skip=7 tokens=13" %%j in ('ipconfig.exe') do if not defined IP set IP=%%j
@set SGW=
for /f "skip=8 tokens=13" %%k in ('ipconfig.exe') do if not defined SGW set SGW=%%k
::@ECHO %DATE% ; %COMPUTERNAME% ; %USERNAME% ; %MAC% ; %IP% ; %SGW% >>%LOG%
@echo %DATE% ; %COMPUTERNAME% ; %USERNAME% ; %MAC% ; %IP% ; %SGW%
ENDLOCAL
Wie lange es gedauert hat um das hinzubekommen möchtet ihr gar nicht wissen :/
So wie es da steht funktioniert es bis auf den Standard Gateway. Da erhalte ich kurioserweise die Subnetzmaske.
Und ganz zufrieden bin ich mit der lösung auch nicht.
Ich hatte ein Beispiel gefunden, das wollte ich eigentlich nur in das "csv" format umsetzen also quasi mit ; als Trennzeichen.
Aber Pustekuchen
Hi Leute,
ich versuche schon seit gestern eine simple batch zusammenzubasteln, welche ein paar Informationen über den lokalen PC in eine Datei schreibt.
Dabei möchte ich das ganze gerne so aufgebaut haben dass die Daten mit ; getrennt sind, damit ich Sie mir einfach in Excel in Spalten importieren kann.
Ich stelle mir vor dass die batch auf jedem Rechner im LAN ausgeführt und alles in eine zentrale txt auf den Server geschrieben wird.
Dachte eigentlich dass wär einfach - aber ich hab schon so lange nichts mehr mit batch gemacht dass ich jetzt gar nicht mehr klar komme. ;(
Bisher habe ich folgendes:
<code]>
@echo OFF
SETLOCAL
@set LOG=\\srv01\data\computers.log
@set MAC=
for /f "skip=3 tokens=1" %%i in ('getmac.exe') do if not defined mac set mac=%%i
@set IP=
for /f "skip=7 tokens=13" %%j in ('ipconfig.exe') do if not defined IP set IP=%%j
@set SGW=
for /f "skip=8 tokens=13" %%k in ('ipconfig.exe') do if not defined SGW set SGW=%%k
::@ECHO %DATE% ; %COMPUTERNAME% ; %USERNAME% ; %MAC% ; %IP% ; %SGW% >>%LOG%
@echo %DATE% ; %COMPUTERNAME% ; %USERNAME% ; %MAC% ; %IP% ; %SGW%
ENDLOCAL
Wie lange es gedauert hat um das hinzubekommen möchtet ihr gar nicht wissen :/
So wie es da steht funktioniert es bis auf den Standard Gateway. Da erhalte ich kurioserweise die Subnetzmaske.
Und ganz zufrieden bin ich mit der lösung auch nicht.
Ich hatte ein Beispiel gefunden, das wollte ich eigentlich nur in das "csv" format umsetzen also quasi mit ; als Trennzeichen.
@echo off
SETLOCAL
@SET LOG=%COMPUTERNAME%.log
@ECHO. >%LOG%
rem @ECHO. >>%LOG%
@ECHO Daten des Rechners %COMPUTERNAME% >>%LOG%
@ECHO. >>%LOG%
@ECHO Datum : %DATE% >>%LOG%
@ECHO Zeit : %TIME% >>%LOG%
@ECHO Computername : %COMPUTERNAME% >>%LOG%
@ECHO Aktueller User : %USERNAME% >>%LOG%
@ipconfig /all | findstr /i /C:"Physikalische Adresse" >>%LOG%
@ipconfig /all | findstr /i /C:"IP-Adresse" >>%LOG%
@ipconfig /all | findstr /i /C:"Subnetzmaske" >>%LOG%
@ipconfig /all | findstr /i /C:"Standardgateway" >>%LOG%
@ipconfig /all | findstr /i /C:"DNS-Server" >>%LOG%
@ipconfig /all | findstr /i /C:"Primäres DNS-Suffix" >>%LOG%
@ECHO. >>%LOG%
rem @NOTEPAD.EXE %LOG%
ENDLOCAL
Aber Pustekuchen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 150718
Url: https://administrator.de/contentid/150718
Ausgedruckt am: 09.11.2024 um 01:11 Uhr
1 Kommentar
Moin,
schau dir mal das da an:
btw: Um den DNS rauszufinden, reicht auch ein
Gruß
edit:
den Wildwuchs kann ich mir ja nicht antun...
Und denk dran, das läuft nur auf deutschen Kisten
/edit
schau dir mal das da an:
btw: Um den DNS rauszufinden, reicht auch ein
echo |nslookup|find "Address">text.txt
Gruß
edit:
den Wildwuchs kann ich mir ja nicht antun...
Und denk dran, das läuft nur auf deutschen Kisten
/edit
rem @ECHO OFF
SETLOCAL
@SET LOG=\\srv01\data\computers.log
@SET MAC=
for /f "tokens=3 delims=:. " %%k in ('ipconfig.exe /all ^|find "Physikalisch"') do if not defined mac set mac=%%k
@SET IP=
for /f "tokens=13 delims=: " %%k in ('ipconfig.exe /all ^|find "IP"') do if not defined IP set IP=%%j
@SET SGW=
for /f "tokens=2 delims=:" %%k in ('ipconfig.exe ^|find "gate"') do if not defined SGW set SGW=%%k
::@ECHO %DATE%;%COMPUTERNAME%;%USERNAME%;%MAC%;%IP%;%SGW%>>%LOG%
@ECHO %DATE%;%COMPUTERNAME%;%USERNAME%;%MAC%;%IP%;%SGW%>>%LOG%
ENDLOCAL