trmxdevil
Goto Top

Verschiedene Geräte via Batch de- bzw aktivieren

Hi Leute,
ich hab das Problem, das einige Rechner sich nicht ins Netzwerk verbinden können und die Netzwerkadapter immer
einma deaktivert und wieder aktiviert werden müssen.

Das ganze soll Variabel sein, also die GeräteID soll selbst erkannt werden, damit deaktivierte Netzwerkadapter nicht
automatisch mit aktiviert werden.

Mit Devcon hab ich schon ein bisschen rumprobiert und bei
 devcon status =net PCI\* 

kommen schonma die Adapter raus, die aktiv bez deaktiviert sind. Zu Testzwecken hab ich im Moment 2 Netzwerkkarten im Rechner
eine deaktiviert die andere aktiviert hier die ausgabe, die devcon macht.

PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\3&61AAA01&0&58
    Name: Realtek RTL8139/810x Family Fast Ethernet NIC #2
    Driver is running.
PCI\VEN_10EC&DEV_8139&SUBSYS_D0101429&REV_10\3&61AAA01&0&48
    Name: Realtek RTL8139/810x Family Fast Ethernet NIC
    Device is disabled.
2 matching device(s) found.

Dann habe ich noch eine kleine Batch, mit der ich bereits beide Adapter starten bzw deaktivieren und sofort Neustarten.

@echo off
set "Action=disable"  
set "device=PCI\*"  

:anfang
devcon %Action% =net %device%


if "%Action%"=="enable" goto enable  
  
  :disable
  set "Action=enable"  
  goto anfang
  pause

  :enable
  pause

Meine frage ist jetz, ob man das irgendwie so hinbekommt, das %Device% die komplette ID (bis zum Backslash) zugewisen wird.
Also in dem fall:
devcon %Action% =net PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\* :-- das Sternchen muss bleiben, sonst wird kein Device gefunden.

Für alle antworten bedanke ich mich jetzt schon im vorraus.

Mfg
Michael

Content-ID: 87570

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

Ausgedruckt am: 23.11.2024 um 02:11 Uhr

TRMxDEVIL
TRMxDEVIL 19.05.2008 um 16:50:46 Uhr
Goto Top
Hi Leute, 111 aufrufe vllt beschäftigt sich ja einer damit, wenn nicht habe ich es jetzt gelöst. Wollte das hier nur mitteilen, und mich bedanken,
ich habe die letzen Tage / Woche jeden Tag hier im Forum gehockt und mir die sachen zusammen gesucht Batchen war für mich vorher absolutes neuland.
Heute hatte ich die idee mit den 2 Textdatein und dem findstr /n .* hier aus dem forum..
Ich danke auch Biber, für seine Informativen Tuts und antworten in allen Themen die ich gefunden hab.

Für alle die sich das oben genannte Problem angesehen haben, hier die lösung:
@echo off & Setlocal EnableDelayedExpansion

set /a "zeile=0"  
set device=
set /a "zeile2=0"  
devcon status =net PCI\* > status.txt
findstr /n .* status.txt > nr_status.txt

:suche
set/a zeile=%zeile%+3
for /f "delims=" %%i in ('findstr "^%zeile%:" nr_status.txt ^|find "run"') do (  
del status.txt
goto gefunden
)

IF %zeile%==30 goto ende
goto suche


:gefunden
IF %zeile%==3 set /a zeile2=1
IF %zeile%==6 set /a zeile2=4
IF %zeile%==9 set /a zeile2=7
IF %zeile%==12 set /a zeile2=10
IF %zeile%==15 set /a zeile2=13
IF %zeile%==18 set /a zeile2=16
IF %zeile%==21 set /a zeile2=19
IF %zeile%==24 set /a zeile2=22
IF %zeile%==27 set /a zeile2=25
IF %zeile%==30 set /a zeile2=28

for /f "tokens=2 delims=\" %%x in ('findstr "%zeile2%:" nr_status.txt') do set "device=%%x"  


devcon disable "PCI\%device%"  
devcon enable "PCI\%device%"  

del nr_status.txt
exit

:ende
echo Keine Aktivierte Netzwerkkarte vorhanden!
pause
exit

Wenn jemand verbesserungs vorschläge hat bitte melden ;)
Ist bestimmt net perfekt

Mfg
Michael
der ab jez versucht zu helfen xD