Jump to content

Medienstatus der LAN-Verbindung abfragen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben (bearbeitet)

Werte Gemeinde,

 

den Medienstatus der LAN-Verbindung möchte ich abfragen vorzugsweise aus der Registry. Ich möchte feststellen, ob das Medium verbunden oder getrennt?

 

Mit ipconfig all wird der Status nur bei getrennter Verbindung eingeblendet, notfalls wäre das sogar handhabbar.

 

Mit Google konnte ich keinen Hinweis auf einen Registryeintrag finden, auch im Technet nicht, auch netsh habe ich erfolglos angeschaut.

 

Versucht habe ich es mit dem Processmonitor, wurde davon überfordert.

 

Hat jemand bitte einen Tipp für mich, eine Idee?

 

Habt Dank für Aufmerksamkeit und Rat.

 

Edgar

bearbeitet von lefg
Geschrieben

Mit AutoIT und WMI koennte man sowas nett scripten. Ich hab dir mal ein kleines Beispiel angehaengt.

 

MsgBox(0,"",GetNetStatus("LAN-Verbindung"))

 

Func GetNetStatus($Device)

#cs

Device = Name so wie er in Netzwerkverbindungen angezeigt wird, z.B. "Drathtlose Neztwerkverbindung")

Rückgabewerte:

1 = online

0 = offline

-1 = Konnte Netzwerkkarte nicht finden

-2 = Konnte IP nicht auslesen

#ce

 

 

Local $wbemFlagReturnImmediately = 0x10

Local $wbemFlagForwardOnly = 0x20

Local $colItems = ""

Local $strComputer = "localhost"

Local $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")

$colItems = $objWMIService.ExecQuery("SELECT Index FROM Win32_NetworkAdapter WHERE NetConnectionID = '" & $Device & "'", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

Local $index = -1

 

For $objItem In $colItems

$index = $objItem.Index

Next

 

If $index = -1 Then Return -1

 

$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Index = " & $index, "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

 

Local $ip = -1

 

For $objItem In $colItems

$ip = $objItem.IPAddress(0)

Next

 

If $ip = -1 Then Return -2

 

If $ip = "0" Or $ip = "0.0.0.0" Then

Return 0

Else

Return 1

EndIf

EndFunc

 

(Quelle: McPoldy http://www.autoit.de)

Geschrieben

Hallo Kameraden,

 

ich bitte um Entschuldigung für die verzögerte Meldung.

 

Ein Dankeschön für die Ratschläge.

 

An AutoIT habe ich schon gedacht, bin da aber sehr untertrainiert momentan. Wie müsste ich das Script einsetzen?

 

BGI habe ich im Einsatz, bei WMI sieht es bei mir dunkel aus, habe nicht die geringste Ahnung, wie ich das anfangen sollte.

 

Mit BGI bringe ich ein Popup auf den PreLogin, versuchsweise eine Aufforderung zum Beachten der Seminarordnung.

 

Kann es wirklich sein, es gibt in der Registry kein Datum, dass den Mediastatus wiedergibt?

 

Gruß

 

Edgar

Geschrieben
Hallo Kameraden,

 

... bei WMI sieht es bei mir dunkel aus, habe nicht die geringste Ahnung, wie ich das anfangen sollte.

 

 

dafür gibts wmic

 

probiers z.b. mal damit

 

wmic nic where netconnectionid!=NULL get netconnectionid,caption,speed,netenabled,macaddress /value

 

blub

Geschrieben (bearbeitet)

Probiert:

 

Knoten - HL2438
FEHLER:
Code = 0x80041017
Beschreibung = Die Anfrage ist ungültig.

Einrichtung = WMI

 

Mit Google: wmic nic stiess ich u.a. auf Scriptomania mit WMI von Daniel Melanchthon

 

Dort auf:

 

Mittels der Liste der Netzwerkinterfaces ermittelte ich dann die ID der Netzwerkkarte und listete alle Eigenschaften der aktiven Netzwerkkarte auf:

 

WMIC NIC WHERE DeviceID!=NULL GET Index, NetConnectionID, Name

WMIC NIC WHERE DeviceID=1 GET /VALUE

 

Die Einstellungen selbst lassen sich dann mit dem Alias NICConfig ansehen und ändern:

 

WMIC NICConfig GET /VALUE

WMIC NICConfig CALL /?

 

Ob mich das weiterbringt?

bearbeitet von lefg
Geschrieben

Hallo Sigma,

 

ich habe das mit copy und paste in das cli und in eine Batch übertragen.

 

An dem XP kommt der Fehler, am W7 nicht.

 

Ich werde das gleich mal an einem anderen XP testen.

 

Auch am anderen XP das selbe Ergebnis.

Geschrieben

So geht es:

 

wmic nic where netconnectionid!=NULL get netconnectionid,caption,speed,macaddress /value

 

Den Wert "netenabled" gibt es unter XP nicht. Für alle möglichen Werte einfach

 

wmic nic where netconnectionid!=NULL get * /value

 

eingeben.

 

Der interessante Wert dürfte "NetConnectionStatus" sein.

Geschrieben

Mein Kollege hat mal ein Script für BGINFO gemacht um bestimmte Netzwerkadapter ausblenden:

 

' Outputs: IP-Adresses in Lan
' 
' for use with BGInfo 


Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2") 
Set colItems = objWMIService.ExecQuery _ 
("SELECT * FROM Win32_NetworkAdapter Where NetConnectionStatus = '2'",,48) 

For Each objItem In colItems
If InStr(objItem.Caption, "VMware Virtual") = 0 Then 
	Echo objItem.MACAddress
End If
Next 

 

Ist vielleicht ein Ansatz.

 

Einfach als Custom Script in BGINFO einbinden.

Geschrieben

Moin Zahni,

 

inzwischen auch festgestellt,

 

bei XP kennt wmic kein NetEnabled,

 

NetconnectionStatus dürfte zumindest brauchbar sein,

 

gibt zurück:

 

2 bei angeschlossenem Kabel

 

7 bei entfernten Kabel

 

Ich werde das mal so benutzen.

 

Ich danke für die Hilfestellung.

 

Edgar

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...