Données dans CSV et transformation.
Bonjour, je vous contactes parce que j'ai besoin d'aide !
Voila j'ai créer un batch pour récuperer des données sur un poste (je vais déployer ce script sur tout les postes par la suite).
Je récupère l'adresse MAC, le hostname, l'Os et la date sous cette forme.
Adresse physique . . . . . . . . . . . : 2C-27-D7-1C-13-F2
PT146-03
Windows 7 Service Pack 1 32bits
12/04/2013
J'aurais besoin qu'il apparaisse sous la forme suivante:
2C-27-D7-1C-13-F2,PT146-03, Windows 7 Service Pack 1 32bits
12/04/2013
Voici le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
cls
ipconfig/all | findstr /C:"Adresse physique" > %%m
for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . %%m') do if %%i equ 1 echo %%j > \\10.21.147.69\netlogon\fog\Host\machine\"%COMPUTERNAME%".csv
echo %COMPUTERNAME% >> \\netlogon\fog\Host\machine\"%COMPUTERNAME%".csv
set vwin= &set archi= &set sp=
color 0A
ver | find /i "version 6.1." > nul
if %errorlevel%==0 set vwin=Windows 7
ver | find /i "version 6.0." > nul
if %errorlevel%==0 set vwin=Windows Vista
ver | find /i "version 5.1." > nul
if %errorlevel%==0 set vwin=Windows XP
ver | find /i "version 5.2." > nul
if %errorlevel%==0 set vwin=Windows 2003
ver | find /i "Windows 2000" > nul
if %errorlevel%==0 set vwin=Windows 2000
ver | find /i "Windows NT" > nul
if %errorlevel%==0 set vwin=Windows NT
ver | find /i ">Windows ME" > nul
if %errorlevel%==0 set vwin=Windows ME
ver | find /i "Windows 98" > nul
if %errorlevel%==0 set vwin=Windows 98
ver | find /i "Windows 95" > nul
if %errorlevel%==0 set vwin=Windows 95
if %PROCESSOR_ARCHITECTURE%==AMD64 (set archi=64bits)
if %PROCESSOR_ARCHITECTURE%==x86 (set archi=32bits)
if defined PROCESSOR_ARCHITEW6432 (set archi=Processus 32 bits sur une plateforme 64 bits)
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CSDversion >NUL 2>NUL || goto aftertest
for /f "delims=: tokens=*" %%X in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CSDversion ^| find "Service Pack 3"') do set SP=3
for /f "delims=: tokens=*" %%X in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CSDversion ^| find "Service Pack 2"') do set SP=2
for /f "delims=: tokens=*" %%X in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CSDversion ^| find "Service Pack 1"') do set SP=1
:aftertest
if "%sp%"=="" (
set typeOS=%vwin% %archi% without service pack
goto end
)
set typeOS=%vwin% Service Pack %sp% %archi%
:end
echo %typeOS% >> \\netlogon\fog\Host\machine\"%COMPUTERNAME%".csv
echo %date% >> \\netlogon\fog\Host\machine\"%COMPUTERNAME%".csv |
Mon autre problème vient de la suite ! Il faudrait que j'ajoute depuis mon poste admin, les résultats de tout les fichiers créer précédement dans un fichier CSV à la suite (pour les importer dans une base de données). Or toutes mes tentatives en powershell n'ont pas réussi !
Forme du CSV:
MAC Address (ie: 00:11:22:33:44:55)*,"Hostname*","IP Address","Description","Operating System ID","Image ID"
Il faut juste que j'ajoute l'adresse mac, le hoste name, et le reste dans la description. Le reste ne m'étant pas utile pour l'instant.
Si vous avez des idées, merci d'avance :)