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

Wie kann man mit VBS eine MAC Adresse in eine Var schreiben?

Mitglied: MichaZ

MichaZ (Level 1) - Jetzt verbinden

15.08.2007, aktualisiert 17.08.2007, 7733 Aufrufe, 7 Kommentare

Hallo Leute...

suche eine einfache Möglichkeit per VBS die Lokale MAC des Hosts in eine Variable zu schreiben...

mfg
michA
Mitglied: gemini
15.08.2007 um 10:22 Uhr
Hallo MichaZ,

01.
Option Explicit
02.
Dim objWMIService, colAdapters, objAdapter, strMAC, strComputer
03.
strComputer = "."
04.
Set objWMIService = GetObject("winmgmts:" _
05.
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
06.
Set colAdapters = objWMIService.ExecQuery _
07.
    ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
08.
For Each objAdapter in colAdapters
09.
   strMAC = objAdapter.MACAddress
10.
MsgBox strMAC
11.
Next
Wenn mehrere Netzwerkkarten aktiv sind, wird strMAC jeweils überschrieben.
In solch einem Fall könntest du WHERE entspr. einschränken, je nachdem welche Informationen der Konfiguration dir vorliegen. Bspw.
01.
WHERE IPAddress = aaa.bbb.ccc.ddd
02.
WHERE Caption = xxxxxxxxxxxx
03.
WHERE Description = xxxxxxxxxxx
HTH,
gemini
Bitte warten ..
Mitglied: MichaZ
15.08.2007 um 11:18 Uhr
Hallo "gemini

Danke erst mal für die Hilfe

naja es sollte immer die erste Karte sein

also müsste man dann mit WHERE Description = LAN-Verbindung
arbeiten ?!?!
Bitte warten ..
Mitglied: gemini
15.08.2007 um 11:55 Uhr
Hi,

teste doch einfach, was zurückgegeben wird.

Wenn nur eine Karte eingebaut ist, onboard- und virtuelle Karten (Cisco-Client, VMware etc.) zählen hier mit, kann WHERE ... auch ganz weggelassen werden.

Gruß,
gemini
Bitte warten ..
Mitglied: MichaZ
15.08.2007 um 13:56 Uhr
er gibt alle MAC's der Reihe nach zurück...

muss mal schaun ob das etwas ausmacht...
brauche den Wert der ersten für eine SQL-Abfrage...
aber da bastel ich gerade noch dran... das klappt noch nich..
Bitte warten ..
Mitglied: bastla
15.08.2007 um 18:30 Uhr
Hallo MichaZ!

Wenn's nur der erste Wert sein soll, könntest Du ja einfach
01.
strMAC = objAdapter.MACAddress
durch
01.
If strMAC = "" Then strMAC = objAdapter.MACAddress
ersetzen ...

Grüße
bastla
Bitte warten ..
Mitglied: MichaZ
16.08.2007 um 08:17 Uhr
Danke bastla für die Hilfe...

kannst du mir das vielleicht noch kurz erklären wie das ganze geht???

mfg
michA
Bitte warten ..
Mitglied: bastla
17.08.2007 um 21:41 Uhr
Hallo MichaZ!

Das "Ganze" ist in erster Linie eine WMI-Abfrage (schau Dir dazu einmal WMI Code Creator oder Scriptomatic und für den Background zB die msdn WMI Reference an), welche eine Collection (Aufzählung) liefert - in diesem Fall eben alle "NetworkAdapter". Mit einer "For Each"-Schleife kannst Du die alle durchgehen und die gewünschte(n) Eigenschafte(n) - im konkreten Fall etwa "MACAddress" - jedes Elements auslesen.

Da Du nur vom ersten Element den Wert mitnehmen wolltest, prüft meine "If"-Zeile einfach, ob schon eine MAC-Adresse in der Variablen "strMAC" steht und nur, wenn noch keine da ist, wird die Adresse des aktuellen Elements in die Variable geschrieben. Ohne diese Prüfung (und ohne Verwendung eines Arrays) würde bei jedem Schleifendurchlauf der Variableninhalt neu gesetzt, so dass am Schluss eben die letzte gefundene MAC-Adresse gespeichert wäre.

Zumeist wird es aber sinnvoller sein, wie von gemini vorgeschlagen, entweder bei der WMI-Abfrage schon eine Bedingung einzubauen oder in der Auswertungsschleife noch eine andere Eigenschaft, etwa "Caption", abzufragen, sodass Du Dich nicht auf die Reihenfolge verlassen musst. Ein Beispiel (für die zweite Möglichkeit) könnte so aussehen:
01.
If InStr(1, objAdapter.Caption, "Broadcom", vbTextCompare) > 0 Then strMAC = objAdapter.MACAddress
Damit würden nur Netzwerkgeräte mit einer Bezeichnung, die "Broadcom" enthält (das "vbTextCompare" sorgt dafür, dass Groß- und Kleinschreibung keine Rolle spielt), berücksichtigt werden.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Firewall

ASA im Failover Mode Primary HW change Mac adress change

Frage von MikePostFirewall1 Kommentar

Hallo zusammen Liege ich richtig, wenn aktuell der secondary/active ist und ich ersetze den Primary/standy durch eine neue Hardware. ...

Batch & Shell

Ausgegebene Information einer var zuordnen und var mit Text vergleichen

Frage von iGriefU1Batch & Shell2 Kommentare

Ich möchte ein Unterprogramm machen: Es soll prüfen, ob ich einen WLAN HotSpot erstellen kann. Da habe ich die ...

Batch & Shell

Batch: FOR-IF-FOR Schleife und Var aus zwei Var zusammensetzen

gelöst Frage von .SesslBatch & Shell6 Kommentare

Hallo zusammen, ich hab "mal wieder" ein, eig. zwei Probleme, bei dem ich Eure Hilfe benötige, da mir das ...

Debian

Var,log über Webserver anzeigen?

Frage von Motte990Debian5 Kommentare

Guten Abend Ich würde es mal interessieren ob es möglich ist das ich den Ordner /var/log bzw alle darin ...

Neue Wissensbeiträge
Administrator.de Feedback
Wartungsarbeiten heute Nacht ab 01:00 Uhr
Information von Frank vor 2 StundenAdministrator.de Feedback4 Kommentare

Hallo User, heute Nacht (15.07 auf 16.07.2019) zwischen 01:00 und 03:00 Uhr finden dringende Wartungsarbeiten auf unseren Servern statt. ...

Python

Sie meinen es ja nur gut - Microsoft hilft python-Entwicklern auf unnachahmliche Weise

Information von DerWoWusste vor 3 StundenPython

Stellt Euch vor, Ihr nutzt python unter Windows 10 und skriptet damit regelmäßig Dinge. Nach dem Update auf Windows ...

Sicherheits-Tools

TrendMicro Worry-Free Business Security 10.0 SP1 steht in Englisch bereit mit Unterstützung für Windows 10 1903 (May Update)

Information von VGem-e vor 13 StundenSicherheits-Tools1 Kommentar

Moin Kollegen, Dann kommt wohl demnächst auch die deutschsprachige/europäische Version zur Auslieferung. Gruß VGem-e

Batch & Shell
PowerShell Konferenz - Videos online
Information von NetzwerkDude vor 22 StundenBatch & Shell

Abend, die Tage werden Videos der Talks von der diesjährigen EU Powershell Konferenz hochgeladen, sind einige Interessante dabei: MFG ...

Heiß diskutierte Inhalte
Erkennung und -Abwehr
Unerklärlicher Gestank im EDV-Raum - "neues" Gebäude und keine offenkundige Ursache feststellbar!
Frage von VGem-eErkennung und -Abwehr27 Kommentare

Moin Kollegen, ich habe seit heute Morgen das Problem, dass in unserem EDV-Raum ein total unerklärbarer Gestank herrscht! Ich ...

Debian
Für Anmeldung an Linux Server AD Credentials verwenden ohne Domäne zu joinen
gelöst Frage von AlchimedesDebian14 Kommentare

Hallo , ist es möglich für die Anmeldung an Linuxserver die User Credentials einer Domäne zu verwenden ohne das ...

Verschlüsselung & Zertifikate
Bitlocker oder Veracrypt unter Win10? Was ist hinsichtlich Performance, Sicherheit, Backup und Kompatibilität besser?
Frage von PluwimVerschlüsselung & Zertifikate13 Kommentare

Guten Morgen, bei mir wird demnächst eine neue Platte fällig, weil ich mein Win7-System auf Win10 umstellen will. D.h. ...

Batch & Shell
Powershell DNS neue Domain anlegen
Frage von violakBatch & Shell12 Kommentare

Guten Morgen, ich möchte gerne auf unserem DNS Server (Windows Server 2016) unter der Primären Zone verschiedene Domains anlegen ...