Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

string in array suchen

Frage Entwicklung VB for Applications

Mitglied: larty81

larty81 (Level 1) - Jetzt verbinden

22.10.2008, aktualisiert 30.10.2008, 5650 Aufrufe, 4 Kommentare

Hallo,

ich habe mir folgendes zusammen gebaut um aus einem array einen string der die ip adresse eines bestimmten adapters enthält auszulesen, vorher setze ich noch die bedingung dass diese ip aus einem bestimmten adressbreich kommt:


Set objNetwork = WScript.CreateObject("WScript.Network")
strComputer = objNetwork.ComputerName

On Error Resume Next

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery("SELECT IPAddress " & _
"FROM Win32_NetworkAdapterConfiguration " & _
"WHERE IPEnabled=TRUE")

For Each objItem In colItems
If Not IsNull(objItem.IPAddress) Then
For i = LBound(objItem.IPAddress) To UBound(objItem.IPAddress)
if objItem.IPAddress(i) like "172.16." Then
WScript.Echo("IP-Adresse: " & objItem.IPAddress(i) & " gefunden.")
else WScript.Echo("No Match.")
end if
next
End if
Next


nun meine frage: warum bekommen ich immernoich die ausgabe "IP-Adresse: 172.16.irgendwas gefunden" auch wenn ich den adressbereich ändere, meinetwegen auf "if objItem.IPAddress(i) like "232.16."" setze?


bin noch absoluter vbs noob, kann es daher nich wirklich nachvollziehen, sorry

danke schonmal im voraus!
Mitglied: bastla
22.10.2008 um 12:26 Uhr
Hallo larty81 und willkommen im Forum!

nun meine frage: warum bekommen ich immernoich die ausgabe "IP-Adresse: 172.16.irgendwas gefunden" auch wenn ich den adressbereich ändere, meinetwegen auf "if objItem.IPAddress(i) like "232.16."" setze?
Die Antwort erhältst Du, wenn Du "On Error Resume Next" entfernst (was während der Testphase eines Scripts generell anzuraten ist).

Du wirst dann auf den Fehler in Zeile 18 hingewiesen (BTW: wenn Du Code-Formatierung verwendest, lässt sich in Deinem geposteten Script die Zeile 18 leichter finden) - VBScript kennt nämlich kein "Like". Anstelle dessen kannst Du InStr() oder Left() verwenden.

Eine Alternative zur "Vergleichs"-Schleife könnte übrigens so aussehen:
01.
For Each objItem In colItems 
02.
    If Not IsNull(objItem.IPAddress) Then 
03.
        If InStr(Join(objItem.IPAddress), "192.168.") > 0 Then 
04.
            WScript.Echo("IP-Adresse: " & objItem.IPAddress(i) & " gefunden.") 
05.
        Else 
06.
            WScript.Echo("No Match.") 
07.
        End If 
08.
    End If 
09.
Next
Grüße
bastla
Bitte warten ..
Mitglied: larty81
23.10.2008 um 15:13 Uhr
vielen Dank für die schnelle Hilfe!! bin soweit auch ordentlich vorwärts gekommen..

01.
Set objNetwork = WScript.CreateObject("WScript.Network") 
02.
strComputer = objNetwork.ComputerName 
03.
 
04.
On Error Resume Next 
05.
 
06.
Const wbemFlagReturnImmediately = &h10 
07.
Const wbemFlagForwardOnly = &h20 
08.
 
09.
 
10.
 
11.
   Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
12.
 
13.
   Set colItems = objWMIService.ExecQuery("SELECT IPAddress " & _ 
14.
        "FROM Win32_NetworkAdapterConfiguration " & _ 
15.
        "WHERE IPEnabled=TRUE") 
16.
		 
17.
   Set colItems1 = objWMIService.ExecQuery("Select * from Win32_NetworkAdapter Where NetConnectionStatus = 2")	 
18.
 
19.
For Each objItem In colItems  
20.
    If Not IsNull(objItem.IPAddress) Then  
21.
        If InStr(Join(objItem.IPAddress), "172.16.") > 0 Then  
22.
            WScript.Echo("IP-Adresse: " & objItem.IPAddress(i) & " gefunden.") 
23.
            For Each objItem1 in colItems1 
24.
             if objItem1.NetConnectionID = "LAN-Verbindung" and InStr(Join(objItem.IPAddress), "172.16.") > 0   then  
25.
               MsgBox "Verbindungsname = LAN-Verbindung" 
26.
             else 
27.
                  msg = "NW-Verbindung in LAN-Verbindung umbenennen?"    
28.
                  title = "NW-Verbindung umbenennen" 
29.
                  If MsgBox(msg, 4, title) = vBYes Then    
30.
                  lanvar = "netsh interface set interface name = " & objItem1.NetConnectionID  & " newname = LAN-Verbindung {Enter}"  
31.
                  set ws = CreateObject("Wscript.shell")  
32.
                  ws.sendkeys(lanvar) 
33.
                  MsgBox "Verbindung in LAN-Verbindung umbenannt" 
34.
                Else 
35.
                  MsgBox "Abbruch durch Benutzer" 
36.
                End If 
37.
 
38.
             end if    
39.
            Next 
40.
        Else  
41.
            WScript.Echo("Keine passende IP gefunden.")  
42.
        End If 
43.
		 
44.
    End If  
45.
Next
nur: warum wird die lan-verbindung unter win2000 nicht umbenannt, sonder nur die meldung "Verbindungsname = LAN-Verbindung"? unter xp funkt das script wie es soll.

wenn ich "On Error Resume Next" auskommentiere bekomm ich nen fehler in zeile 23 angezeigt mit dem fehlercode "0x80041017"


kann es daran liegen dass ich zwei verschiedene klassen abfrage?! hab nur ne ahnung, keinen wirklichen plan... help pls!
Bitte warten ..
Mitglied: larty81
30.10.2008 um 10:51 Uhr
hab rausgefunden das viele probleme dabei haben unter win2k die Eigenschaft "NetConnectionStatus" aus der Klasse "Win32_NetworkAdapter" in der query auszulesen, es soll sich durch einen syntax-fehler in der query bemerkbar machen - das tut es auch in meinem script, aber wie gesagt eben nur unter win2k.

hat jemand mal was davon gehört bzw weiß was man dagegen machen kann? ohne den ConnectionStatus ist das gesamte script hinfällig...
Bitte warten ..
Mitglied: bastla
30.10.2008 um 11:05 Uhr
Hallo larty81!

Hierher verirrt sich vermutlich kaum jemand (außer uns beiden )- Du solltest daher besser einen neuen Thread zum Thema "ConnectionStatus" eröffnen - auch, weil ich leider dazu auch keine Idee habe ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Linux Tools
Bash String Array
Frage von SIPSIPLinux Tools7 Kommentare

Hallo Leute ich schon wieder :) Zur Info: Grund für meine vielen Fragen ist, weil ich ein Projekt bekommen ...

Batch & Shell
PowerShell Array Elements zum String
gelöst Frage von derhoeppiBatch & Shell1 Kommentar

Hallo, ich stehe vor folgender Herausforderung. Nachdem ich nun erfolgreich zwei Arrays vergleichen kann in dem ganze Zahlen stecken, ...

C und C++
String einlesen in Array und wieder ausgeben von hinten
Frage von ProtectedC und C++4 Kommentare

Hallo, ich würde gerne einen String einlesen bzw. char und dann andersrum wieder ausgeben. Also: Otto Maoam zu: maoaM ...

Batch & Shell
PowerShell String zerlegen in Array, DataTable, Hashtable speichern
gelöst Frage von derhoeppiBatch & Shell7 Kommentare

Guten Morgen, leider habe wieder ein Thema beim zerlegen eines Strings. Folgendes Problem: Die Rückgabe eines Admintools liefert mir ...

Neue Wissensbeiträge
Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 9 StundenWindows 102 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 11 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 1 TagViren und Trojaner3 Kommentare

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement15 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen12 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...