lefg 276 Geschrieben 28. April 2011 Melden Teilen Geschrieben 28. April 2011 (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 28. April 2011 von lefg Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 28. April 2011 Melden Teilen Geschrieben 28. April 2011 Du könntest mittels WMI probieren etwas genauere Infos herauszufinden. Schau dir das Tool an, ich weiß nicht ob das auch auf XP läuft, auf W7 geht es einwandfrei. NetworkTrayTool - Quick access to your Network Connections Zitieren Link zu diesem Kommentar
InformatikKFM 17 Geschrieben 28. April 2011 Melden Teilen Geschrieben 28. April 2011 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) Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 28. April 2011 Melden Teilen Geschrieben 28. April 2011 BGINFO kann übrigens auch das Ergebnis von WMI-Abfragen darstellen.... Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 4. Mai 2011 Autor Melden Teilen Geschrieben 4. Mai 2011 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 Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 4. Mai 2011 Melden Teilen Geschrieben 4. Mai 2011 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 Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 5. Mai 2011 Autor Melden Teilen Geschrieben 5. Mai 2011 (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 5. Mai 2011 von lefg Zitieren Link zu diesem Kommentar
Sigma 10 Geschrieben 5. Mai 2011 Melden Teilen Geschrieben 5. Mai 2011 Hallo, der Code von blub funkioniert bei mir. Hast Du einen Tippfehler ausgeschlossen? Ist das Betriebssystem Windows XP/2003 oder aktueller? Grüße, Sigma Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 5. Mai 2011 Autor Melden Teilen Geschrieben 5. Mai 2011 Interessant auch dies: WMI Object NetConnectionStatus im Loop abfragen Weiter:XP - Auslesen des Status einer Netzwerkverbindung (VBScript/WMI) Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 5. Mai 2011 Autor Melden Teilen Geschrieben 5. Mai 2011 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. Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 5. Mai 2011 Autor Melden Teilen Geschrieben 5. Mai 2011 Es liegt an dem: wmic nic where netconnectionid!=NULL get netenabled /value Die anderen habe ich raugenomme, die funktionieren auch. Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 5. Mai 2011 Melden Teilen Geschrieben 5. Mai 2011 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. Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 5. Mai 2011 Melden Teilen Geschrieben 5. Mai 2011 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. Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 5. Mai 2011 Autor Melden Teilen Geschrieben 5. Mai 2011 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 Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 5. Mai 2011 Autor Melden Teilen Geschrieben 5. Mai 2011 Das nächste Problem, wie kommt der Rückgabewert in eine Variable. Das Verb SET ist mir zwar seit eben bekannt, wie das aber mit der Abfrage GET in Verbindung kommt.:confused: Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.