emporio-divine
Goto Top

IP MAC Standard Gateway und DNS per Batch abfragen und in eine Datei schreiben

kurz vor dem ausflippen face-sad

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 face-sad

Content-Key: 150718

Url: https://administrator.de/contentid/150718

Printed on: April 23, 2024 at 12:04 o'clock

Mitglied: 60730
60730 Sep 09, 2010, updated at Oct 18, 2012 at 16:43:25 (UTC)
Goto Top
Moin,

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... face-wink
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