06. marts 2006 - 12:31Der er
19 kommentarer og 2 løsninger
Extracte MAC adresse hos mappet computer
Jeg har fuld adgang til alle PC systemer/server her på arbejdet. I visse tilfælde er en given PC blevet slukket og ka' følgeligt ikke 'pilles i' med remote eller mapning. Og den er måske placeret et mennesketomt sted andet sted/adresse i firmaet - ÆV. Well - med WOL (WakeOnLan) kan tænde en vilkårlig PC - fint nok. Jeg skal jo bare kende MAC adressen.
Jeg vil så skrive en liste over "vigtigt" PC systemer/server's nummer/MAC adresse; det ka' nok dreje sig om 50-100 stykker. Men istedet for at skulle bruge Dameware ell. lign. for at 'overtage' styringen én for én og derefter IPCONFIG /all , så søger jeg et tool der ka' extracte MAC adressen remote på en eller anden vis ???
I flere tilfælde er systemet måske ibrug så en skærmovertagelse ikke vil være så populært...
(*) Jeg har allerede diverse former for WOL programmer...
@echo off if [%1]==[] ( echo You must specify a computername goto :eof )
for /F "tokens=3" %%I in ('ping -n 1 %1 ^|findstr "Ping-statistikker"') do set IpAddr=%%I set IpAddr=%IpAddr::=% for /F "tokens=2 skip=3" %%I in ('arp -a -N %IpAddr%') do echo %%I
Hvis du gemmer ovenstående i findmac.cmd og kører: findmac ComputerNavn Bør den skrive Mac-Addresse.
Jeg har testet det med en dansk WinXP home, der skal rettes lidt hvis det skal køre på andre Windows versioner eller andre sprog varianter.
<bertelbrander>: Ser lovende ud... Ka' først afprøve det i Weekenden på arbejdet... Evt.: Hvis man ikke skriver noget argument skal den komme og spørge pænt ?
if [%1]==[] ( Set /P MyComputerName="Hvilken Computer: " ) else ( set MyComputerName=%1 )
for /F "tokens=3" %%I in ('ping -n 1 %MyComputerName% ^|findstr "Ping-statistikker"') do set IpAddr=%%I set IpAddr=%IpAddr::=% for /F "tokens=2 skip=3" %%I in ('arp -a -N %IpAddr%') do echo %%I
Sådan havde jeg også forestillet mig det. ... nu har jeg ikke haft mulighed for at afprøve det endnu; sidder pt. kun ved en lokal putter. Hvad hvis "MyComputerName" ikke bliver fundet ?
Navn Type Status --------------------------------------------- PC1234 <00> Entydig Registreret NET <00> Gruppe Registreret PC1234 <20> Entydig Registreret
Man kunne kaste sig ud i: @echo off for /L %%I in (1, 1, 1000) do call :Process %%I goto :eof
:Process set Name=000%1 set Name=PC%Name:~-4% set Addr= for /F "tokens=3" %%I in ('nbtstat -a %Name% ^| findstr /C:"MAC-ad"') do set Addr=%%I if [%Addr%]==[] goto :eof echo Address of %Name% %Addr%
Men det varer meget længe. Det skriver til skærmen, men kan pipes til en txt-fil.
... Jooo - det vil ta' sin tid med scanning af >5000 potentioelle computter systemer.
Jeg har fedtet lidt med ovenstående så det passer med "ComputterName" systemmet her. Den ka' så stå og snurre det næste døgns tid eller flere...
Reslutatfilen ka' altid sorteres på anden vis bagefter...
Efter det bør den så rulle igen på et andet tidspunkt og så kun stile efter de "ComputterName" som ikke kunne findes i første omgang (ikke tændt/oprettet/...)
@echo off setlocal for /F %%I in (computername.txt) do call :Process %%I goto :eof
:Process set Addr= for /F "tokens=3" %%I in ('nbtstat -a %1 ^| findstr /C:"MAC-ad"') do set Addr=%%I if [%Addr%]==[] ( echo Mac Address not found for %1 ) else ( echo Address of %1 %Addr% )
Computernavne formodes at stå i computername.txt, en computer pr linie Du kan pipe til to filer for de to echo statements.
net group "domain computers" /domain > computername.txt
computername.txt består af 3. kolloner. Vha http://www.textpad.com/download/index.html (Block Select Mode) ka' de filtreres/sættes i liste til brug i ovenstående program.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.