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

gelöst Get-WmiObject, nach Netzwerkadapter filtern

Mitglied: Flodsche

Flodsche (Level 1) - Jetzt verbinden

10.11.2016, aktualisiert 08:59 Uhr, 1069 Aufrufe, 11 Kommentare, 5 Danke

Hallo,

ich habe folgendes Script:

01.
$NetworkAdapter = Get-WmiObject Win32_NetworkAdapterConfiguration
02.
$excel = new-object -comobject excel.application
03.
$excel.visible = $true
04.
$workbook = $excel.workbooks.add()
05.
$workbook.workSheets.item(3).delete()
06.
$workbook.WorkSheets.item(2).delete()
07.
$workbook.WorkSheets.item(1).Name = "Netzwerk"
08.
$sheet = $workbook.WorkSheets.Item("Netzwerk")
09.
$f = 2
10.
$lineStyle = "microsoft.office.interop.excel.xlLineStyle" -as [type]
11.
$colorIndex = "microsoft.office.interop.excel.xlColorIndex" -as [type]
12.
$borderWeight = "microsoft.office.interop.excel.xlBorderWeight" -as [type]
13.
$chartType = "microsoft.office.interop.excel.xlChartType" -as [type]
14.
For($b = 1 ; $b -le 4 ; $b++) {
15.
$sheet.cells.item(1,$b).font.bold = $true
16.
$sheet.cells.item(1,$b).borders.ColorIndex = $colorIndex::xlColorIndexAutomatic
17.
$sheet.cells.item(1,$b).borders.weight = $borderWeight::xlMedium }
18.
For($a = 1 ; $a -le 1 ; $a++) {
19.
$sheet.cells.item($a,1).font.bold = $true
20.
$sheet.cells.item($a,1).borders.ColorIndex = $colorIndex::xlColorIndexAutomatic
21.
$sheet.cells.item($a,1).borders.weight = $borderWeight::xlMedium }
22.
$sheet.cells.item(1,1) = "IPv4 Adresse"
23.
$sheet.cells.item(1,2) = "Subnetzmaske"
24.
$sheet.cells.item(1,3) = "Standard Gateway"
25.
$sheet.cells.item(1,4) = "MAC Adresse"
26.
Foreach($process in $NetworkAdapter) {
27.
$sheet.cells.item($f,1) = $process.IPAddress
28.
$sheet.cells.item($f,2) = $process.IPSubnet
29.
$sheet.cells.item($f,3) = $process.DefaultIPGateway
30.
$sheet.cells.item($f,4) = $process.MACAddress
31.
$x++ } #end foreach
32.
$range = $sheet.usedRange
33.
$range.EntireColumn.AutoFit() | out-null
Jedoch ist in dem Excel-Dokument die Spalte für den Gateway nacher leer.

Nun habe ich das wmi objekt mal ohne Excel und dem drum-herum ausgeführt und hab das hier im Ausgabebereich bekommen:

01.
$colItems = Get-WmiObject Win32_NetworkAdapterConfiguration | where{$_.IPEnabled -eq "true"}
02.
ForEach($objItem in $colItems)
03.
{
04.
"IP Adresse:" + $objItem.IPAddress
05.
"Subnetzmaske:" + $objItem.IPSubnet
06.
"Standard Gateway:" + $objItem.DefaultIPGateway
07.
"MAC Adresse:" + $objItem.MACAddress
08.
}
01.
IP Adresse:192.168.***.***
02.
Subnetzmaske:255.255.254.0
03.
Standard Gateway:192.168.***.***
04.
MAC Adresse:C4:34:6B:51:E9:**
05.
IP Adresse:192.168.56.1 fe80::c482:820b:36ef:4918
06.
Subnetzmaske:255.255.255.0 64
07.
Standard Gateway:
08.
MAC Adresse:0A:00:27:00:00:**
Hier gibt es jetzt ja jeden Punkt zweimal (zweiter Netzwerkadapter?) und in Excel gibt er mir immer den zweiten aus, ich benötige aber den ersten?
Wie sag ich dem Powershell-Script nun das er mir bitte den ersten Adapter in Excel schreiben soll?

Danke.

Gruß
Florian
Mitglied: 131381
LÖSUNG 10.11.2016, aktualisiert um 09:12 Uhr
01.
$colitems[0].Ipaddress
02.
$colitems[0].IpSubnet
03.
#...
Gruß
Bitte warten ..
Mitglied: Flodsche
10.11.2016 um 09:16 Uhr
Hi,

so simpel... vielen Dank!

gruß
Florian
Bitte warten ..
Mitglied: Flodsche
10.11.2016, aktualisiert um 09:24 Uhr
In Verbindung mit Excel, funktioniert das ganze allerdings nicht mehr...

01.
$NetworkAdapter = Get-WmiObject Win32_NetworkAdapterConfiguration | where{$_.IPEnabled -eq "true"}
02.
$excel = new-object -comobject excel.application
03.
$excel.visible = $true
04.
$workbook = $excel.workbooks.add()
05.
$workbook.workSheets.item(3).delete()
06.
$workbook.WorkSheets.item(2).delete()
07.
$workbook.WorkSheets.item(1).Name = "Netzwerk"
08.
$sheet = $workbook.WorkSheets.Item("Netzwerk")
09.
$f = 2
10.
$lineStyle = "microsoft.office.interop.excel.xlLineStyle" -as [type]
11.
$colorIndex = "microsoft.office.interop.excel.xlColorIndex" -as [type]
12.
$borderWeight = "microsoft.office.interop.excel.xlBorderWeight" -as [type]
13.
$chartType = "microsoft.office.interop.excel.xlChartType" -as [type]
14.
For($b = 1 ; $b -le 4 ; $b++) {
15.
$sheet.cells.item(1,$b).font.bold = $true
16.
$sheet.cells.item(1,$b).borders.ColorIndex = $colorIndex::xlColorIndexAutomatic
17.
$sheet.cells.item(1,$b).borders.weight = $borderWeight::xlMedium }
18.
For($a = 1 ; $a -le 1 ; $a++) {
19.
$sheet.cells.item($a,1).font.bold = $true
20.
$sheet.cells.item($a,1).borders.ColorIndex = $colorIndex::xlColorIndexAutomatic
21.
$sheet.cells.item($a,1).borders.weight = $borderWeight::xlMedium }
22.
$sheet.cells.item(1,1) = "IPv4 Adresse"
23.
$sheet.cells.item(1,2) = "Subnetzmaske"
24.
$sheet.cells.item(1,3) = "Standard Gateway"
25.
$sheet.cells.item(1,4) = "MAC Adresse"
26.
Foreach($process in $NetworkAdapter) {
27.
$sheet.cells.item($f,1) = $process[0].IPAddress
28.
$sheet.cells.item($f,2) = $process[0].IPSubnet
29.
$sheet.cells.item($f,3) = $process[0].DefaultIPGateway
30.
$sheet.cells.item($f,4) = $process[0].MACAddress
31.
$x++ } #end foreach
32.
$range = $sheet.usedRange
33.
$range.EntireColumn.AutoFit() | out-null
Nun wird garnichts mehr reingeschrieben.

So hat es funktioniert:
01.
$colItems = Get-WmiObject Win32_NetworkAdapterConfiguration | where{$_.IPEnabled -eq "true"}
02.
"IP Adresse:" + $colItems[0].IPAddress
03.
"Subnetzmaske:" + $colItems[0].IPSubnet
04.
"Standard Gateway:" + $colItems[0].DefaultIPGateway
05.
"MAC Adresse:" + $colItems[0].MACAddress
Habe ich jetzt irgendwas übersehen oder falsch gemacht bei der Excel Version?
Bitte warten ..
Mitglied: 131381
10.11.2016, aktualisiert um 09:28 Uhr
Wohl noch keinen Kaffee gehabt min Jung ?!
Zeile 1 zum Auslesen der Config fehlt in deinem obigen Script ! Bzw du hast die Variable anders benannt
01.
$NetworkAdapter = Get-WmiObject Win32_NetworkAdapterConfiguration | where{$_.IPEnabled -eq "true"} 
$networkadapter

Na machts jetzt Klick ?!

Man sollte vor dem Schreiben immer alles nochmal durchgehen dann wären diese sinnlosen Posts überflüssig!
Bitte warten ..
Mitglied: Flodsche
10.11.2016 um 09:36 Uhr
Achso, funktioniert das nicht in Verbindung mit dem Variablen-Namen $NetzwerkAdapter und der Foreach-schleife? Weil ohne das [0] zeigt er die Adressen ja auch an, dachte also die zuordnung stimmt.
Bitte warten ..
Mitglied: 131381
10.11.2016, aktualisiert um 09:47 Uhr
Och mönsch, du bist echt schwer von Begriff...
Wenn du die Variable anders benennst musst du sie auch mit dem anderen Namen verwenden und darauf zuzugreifen !!!!
$networkadapter[0].Ipaddress

Btw. Ist dein Skript viel zu umständlich und viel zu lahm mit Excel Com-Automation. Mit Export-CSV wärst du 1000mal schneller am Ziel.
Bitte warten ..
Mitglied: Flodsche
10.11.2016, aktualisiert um 10:17 Uhr
Nein, nur unerfahren, arbeite erst seit 2-3 Tagen mit powershell.
War natürlich ein Denkfehler... Dachte dies Zeile "Foreach($process in $NetworkAdapter)" vergibt wieder eine neue variable.
Kenne mich leider nicht aus mit CSV-Export, hab 3 tage für das Script wie es jetzt da steht gebraucht :D

Auf meinem Rechner gibt es jetzt alle Adressen richtig an, doch auf anderen Rechnern steht wieder garnix drin (Mit dem gleichen Script!)
Weißt du woran das liegen könnte? Ich vermute mal die [0] ist ein Bezug auf die erste bzw. Standard Netzwerkkarte oder?
Kann es dann sein das auf den anderen PC's im Netzwerk eine andere Netzwerkkarte verwendet wird oder wieso gibt er dort keine Adressen mehr aus?

Edit: Hab gerade rausgefunden, dass wenn ich auf einem zweiten PC, die Null wieder rausnehme, es dort die Adressen anzeigt, auf einem dritten pc jedoch weder ohne, noch mit nuller nicht.
Gibt es eine Möglichkeit wo er sich selber den richtigen adapter sucht?

Gruß
Florian
Bitte warten ..
Mitglied: 131381
LÖSUNG 10.11.2016, aktualisiert um 10:55 Uhr
Gibt es eine Möglichkeit wo er sich selber den richtigen adapter sucht?
Ja, einfach per Where-Object den Adapter mit Default-GW rausfiltern:
01.
$adapter = gwmi win32_NetworkadapterConfiguration | ?{$_.IPEnabled -and $_.DefaultIPGateway -ne $null} | select -First 1
02.
$adapter.IpAddress
03.
$adapter.IPSubnet
Kenne mich leider nicht aus mit CSV-Export
Da lässt sich doch ändern, die obige Methode ist jedenfalls nicht zu bevorzugen!
Um einen Export per Export-CSV machen zu können musst du immer ein Objekt mit Eigenschaften haben, das kann man sich schnell zusammenbauen
01.
gwmi win32_NetworkadapterConfiguration | ?{$_.IPEnabled -and $_.DefaultIPGateway -ne $null} | select IPAddress,IPSubnet -First 1 | export-csv "C:\daten.csv" -delimiter ";" -NoType -Encoding UTF8
Es gibt noch viel zu lernen, aber Fang besser mit den Powershell-Basics an anstatt quer einzusteigen. Excel-COM-Automation ist teilweise sehr hakelig und sollte man nur in absoluten Ausnahmefällen verwenden!
Bitte warten ..
Mitglied: Flodsche
10.11.2016 um 12:06 Uhr
Vielen Dank! auf PC2 funktioniert es schonmal.
Ich weiß nicht ob ich mich jetzt in die CSV Export Geschichte reindenken soll, hab diese Zeilen so noch nie gesehen, will euch ja schließlich hier in dem Forum nicht noch ganz verrück machen. :P
Bitte warten ..
Mitglied: 131381
10.11.2016, aktualisiert um 12:20 Uhr
Zitat von Flodsche:
Ich weiß nicht ob ich mich jetzt in die CSV Export Geschichte reindenken soll, hab diese Zeilen so noch nie gesehen, will euch ja schließlich hier in dem Forum nicht noch ganz verrück machen. :P
Ein Forum ist kein Ersatz fürs Lernen und Lesen !

will euch ja schließlich hier in dem Forum nicht noch ganz verrück machen. :P
Also erst mal ein paar Tage lesen bevor hier für jede simple Frage, die sich mit einer Seite lesen abfackeln lässt, ein neuer Thread aufgemacht wird!

Ein Meister fällt nicht aus dem Himmel, er muss erst gefüttert werden und das geht am besten wenn man gezielt erst die Grundlagen der Scriptsprache lernt und sich dann Schritt für Schritt weiter arbeitet. Du steigst 10 Etagen zu hoch ein, das kann nur zu einem tiefen Fall und Frust führen.
Bitte warten ..
Mitglied: Flodsche
10.11.2016 um 13:18 Uhr
Wahre Worte, werd ich machen. Ich danke dir trotzdem für deine Hilfe!

gruß
Florian
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Powershell: get-wmiobject -computername XYZ

gelöst Frage von Bheleu21Batch & Shell3 Kommentare

Guten Morgen Da ich gerade am meiner geistgen Gesundheit zweifle, Frage ich hier nach ob noch jemand Ideen hat ...

Batch & Shell

Get-WmiObject : Benutzeranmeldeinformationen können für lokale Verbindungen nicht verwendet werden

gelöst Frage von HanutaBatch & Shell3 Kommentare

Hallo Zusammen, ich hab ein Skript geschrieben, über den ich die MAC-Adressen der Rechner auslesen kann. Nur seid 4 ...

Batch & Shell

Powershell Get-SchedulesTask

gelöst Frage von derhoeppiBatch & Shell2 Kommentare

Hi, für einen Deploymentvorgang habe ich derzeit eine Batchdatei in der viele Scheduled Tasks disabled werden. In der Batchdatei ...

Batch & Shell

PowerShell - Get-ADObject

gelöst Frage von emeriksBatch & Shell11 Kommentare

Hi, mit ist gerade aufgefallen, dass man mit offenbar nicht alle Objekte aller Klassen zurückgeliefert bekommt. Diese Abfrage liefert ...

Neue Wissensbeiträge
LAN, WAN, Wireless
OPNsense Captive Portal mit vordefnierten Voucher
Tipp von Crusher79 vor 38 MinutenLAN, WAN, Wireless

Hallo, Ziel war es vorhandene Klienten-Daten (Nummer im System) und Kennwörter anzulegen. Voucher werden durch externes Programm in Papierform ...

Administrator.de Feedback
Entwicklertagebuch: Die nächste Version
Information von admtech vor 20 StundenAdministrator.de Feedback5 Kommentare

Hallo Administrator User, vielleicht haben es einige User schon mitbekommen: Wir arbeiten aktuell an einer komplett neuen Version von ...

Windows Server

Active Directory ESE Version Store Changes in Server 2019

Information von Dani vor 4 TagenWindows Server

Moin, Last month at Microsoft Ignite, many exciting new features rolling out in Server 2019 were talked about. But ...

Exchange Server

Microsoft Extending End of Support for Exchange Server 2010

Information von Dani vor 4 TagenExchange Server4 Kommentare

Moin, After investigating and analyzing the deployment state of an extensive number of Exchange customers we have decided to ...

Heiß diskutierte Inhalte
Visual Studio
Prüfen, ob Programm schon disposed wurde
Frage von MarcoBornVisual Studio17 Kommentare

Hallo Forum, ich habe in VB.NET ein Programm geschrieben, welches Word startet und dort Daten ausliest. Obwohl ich die ...

Netzwerkgrundlagen
Zukunftsicheres Heimnetzwerk aufbauen
Frage von CRO-WarriorNetzwerkgrundlagen16 Kommentare

Hallo Leute. Ich bin dabei das Haus in Kroatien zu renovieren. Da hab ich jetzt die Möglichkeit alles so ...

DNS
DNS Probleme nach Umstellung auf IPv6
Frage von thunderbird304DNS16 Kommentare

Hi Leute! Folgende Problematik: Umstieg von Glasfaser auf Telekom Buisiness DSL. Durch die Umstellung ist die FritzBox nun Gateway. ...

Windows Server
Windows Domäne, SBS 2011, Anmeldung als Admin nicht mehr möglich
Frage von big-dummyWindows Server13 Kommentare

Hallo, vorab: ich habe nun leider keine Grundruhe mehr - die Folgen wären katastrophal. Was ist das Problem: Ich ...