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 Powershell in datei suchen und inhalt in neue datei speichern

Mitglied: micneu

micneu (Level 2) - Jetzt verbinden

18.02.2010, aktualisiert 21:38 Uhr, 11300 Aufrufe, 2 Kommentare

Hallo Leute,

ich habe ein problem, ich habe ca. 150 dateien mit ähnlichem inhalt in einem verzeichnis.

in diesen dateien soll es bestimmte inhalte ausgelesen werden und in einer neuen datei als .csv gespeichert werden.

hier ein aufbau einer datei:

01.

02.
Windows-IP-Konfiguration
03.

04.
   Hostname  . . . . . . . . . . . . : msc-4
05.
   Prim„res DNS-Suffix . . . . . . . : 
06.
   Knotentyp . . . . . . . . . . . . : Hybrid
07.
   IP-Routing aktiviert  . . . . . . : Nein
08.
   WINS-Proxy aktiviert  . . . . . . : Nein
09.

10.
Ethernet-Adapter Bluetooth-Netzwerkverbindung:
11.

12.
   Medienstatus. . . . . . . . . . . : Medium getrennt
13.
   Verbindungsspezifisches DNS-Suffix: 
14.
   Beschreibung. . . . . . . . . . . : Bluetooth-Ger„t (PAN)
15.
   Physikalische Adresse . . . . . . : 00-15-FF-19-19-15
16.
   DHCP aktiviert. . . . . . . . . . : Ja
17.
   Autokonfiguration aktiviert . . . : Ja
18.

19.
Ethernet-Adapter LAN-Verbindung:
20.

21.
   Verbindungsspezifisches DNS-Suffix: 
22.
   Beschreibung. . . . . . . . . . . : Realtek RTL8168C(P)/8111C(P) Family PCI-E Gigabit Ethernet NIC (NDIS 6.20)
23.
   Physikalische Adresse . . . . . . : 00-FF-85-1B-AC-69
24.
   DHCP aktiviert. . . . . . . . . . : Nein
25.
   Autokonfiguration aktiviert . . . : Ja
26.
   Verbindungslokale IPv6-Adresse  . : fe80::cdd7:c072:288:b94b%11(Bevorzugt) 
27.
   IPv4-Adresse  . . . . . . . . . . : 192.168.23.11(Bevorzugt) 
28.
   Subnetzmaske  . . . . . . . . . . : 255.255.255.0
29.
   Standardgateway . . . . . . . . . : 192.168.23.1
30.
   DHCPv6-IAID . . . . . . . . . . . : 234889605
31.
   DHCPv6-Client-DUID. . . . . . . . : 00-01-00-01-13-0B-55-D5-00-21-85-1B-AC-69
32.
   DNS-Server  . . . . . . . . . . . : 192.168.23.1
33.
   NetBIOS ber TCP/IP . . . . . . . : Aktiviert
34.

35.
Tunneladapter isatap.{25C5AFF5-770E-4378-8DAE-628EB1DB977E}:
36.

37.
   Medienstatus. . . . . . . . . . . : Medium getrennt
38.
   Verbindungsspezifisches DNS-Suffix: 
39.
   Beschreibung. . . . . . . . . . . : Microsoft-ISATAP-Adapter
40.
   Physikalische Adresse . . . . . . : 00-00-00-00-00-00-00-E0
41.
   DHCP aktiviert. . . . . . . . . . : Nein
42.
   Autokonfiguration aktiviert . . . : Ja
43.

44.
Tunneladapter LAN-Verbindung* 4:
45.

46.
   Verbindungsspezifisches DNS-Suffix: 
47.
   Beschreibung. . . . . . . . . . . : Teredo Tunneling Pseudo-Interface
48.
   Physikalische Adresse . . . . . . : 00-00-00-00-00-00-00-E0
49.
   DHCP aktiviert. . . . . . . . . . : Nein
50.
   Autokonfiguration aktiviert . . . : Ja
51.
   IPv6-Adresse. . . . . . . . . . . : 2001:0:5ef5:73bc:c79:db4:abd1:ecab(Bevorzugt) 
52.
   Verbindungslokale IPv6-Adresse  . : fe80::c79:db4:abd1:ecab%13(Bevorzugt) 
53.
   Standardgateway . . . . . . . . . : ::
54.
   NetBIOS ber TCP/IP . . . . . . . : Deaktiviert
55.

56.
Tunneladapter isatap.{D76940D6-8ED4-440F-9153-58B2AAC1847F}:
57.

58.
   Medienstatus. . . . . . . . . . . : Medium getrennt
59.
   Verbindungsspezifisches DNS-Suffix: 
60.
   Beschreibung. . . . . . . . . . . : Microsoft-ISATAP-Adapter #2
61.
   Physikalische Adresse . . . . . . : 00-00-00-00-00-00-00-E0
62.
   DHCP aktiviert. . . . . . . . . . : Nein
63.
   Autokonfiguration aktiviert . . . : Ja
ich möchte aus allen ethernet adaptern die mac-adresse, ip-adresse und den hostnamen
in einer .csv datei für jede datei eine zeile.
z. B.: IP;MAC;HOSTNAME
192.168.23.11;00-FF-85-1B-AC-69;msc-4

wie bekomme ich es in powershell hin diese daten
mit meinem code bekomme ich es noch nicht wirklich hin....
01.
$path = "C:\"
02.
$endung = "*.txt"
03.
Get-ChildItem $path -include $endung -Recurse |
04.
Select-String -Pattern "Physikalische Adresse"
2. punkt wie bekomme ich es hin hat eine datei mehrere netzwerkkarten das jede NIC einen einzelnen eintrag in der
datei bekommt?

3. es ist nicht immer windows 7 oder vista, es können auch windows 200 und xp dabei sein...
also dort ist die datei etwas anderst

01.
Windows-IP-Konfiguration
02.

03.

04.

05.
        Hostname. . . . . . . . . . . . . : MFC-PC-111
06.

07.
        Primäres DNS-Suffix . . . . . . . : 
08.

09.
        Knotentyp . . . . . . . . . . . . : Unbekannt
10.

11.
        IP-Routing aktiviert. . . . . . . : Nein
12.

13.
        WINS-Proxy aktiviert. . . . . . . : Nein
14.

15.

16.

17.
Ethernetadapter LAN-Verbindung 3:
18.

19.

20.

21.
        Verbindungsspezifisches DNS-Suffix: 
22.

23.
        Beschreibung. . . . . . . . . . . : Broadcom NetLink (TM) Gigabit Ethernet
24.

25.
        Physikalische Adresse . . . . . . : 00-19-99-31-97-AA
26.

27.
        DHCP aktiviert. . . . . . . . . . : Nein
28.

29.
        IP-Adresse. . . . . . . . . . . . : 192.168.1.111
30.

31.
        Subnetzmaske. . . . . . . . . . . : 255.255.255.0
32.

33.
        Standardgateway . . . . . . . . . : 192.168.1.200
gruß michael
Mitglied: 76109
19.02.2010 um 13:34 Uhr
Hallo Michael!

Powershell ist nicht mein Gebiet, aber alternativ kannst Du ja mal dieses VB-Skript testen (*.vbs).

Zur Funktion:
Alle Doppelpunkte + Leerzeichen durch einen Zeilenvorschub ersetzen
Anschließend die Text-Datei Zeilenvorschub-gesplittet in ein Array einlesen
Array durchsuchen nach: Hostname (Name = Array(i+1))
Array weiterdurchsuchen nach: Ethernet-Adapter LAN OR Ethernetadapter LAN
Wenn gefunden: Adapter = True
Array weiterdurchsuchen nach: Physikalische Adresse (Adresse = Array(i+1))
Array weiterdurchsuchen nach: IP-Adresse (Adresse = Array(i+1))
Variablen-Array prüfen Physikalische Adresse <> "" AND IP-Adresse <> ""
Array mit Trennzeichen (Semikolon) in Csv-Datei schreiben.

Quellcode kopieren und unter *.vbs abspeichern:
01.
Const TxtType = "txt"
02.
Const TxtPath = "X:\Test"
03.
Const CsvPath = "X:\Test\Test.Csv"
04.

05.
Const Adapter1 = "Ethernet-Adapter LAN"
06.
Const Adapter2 = "Ethernetadapter LAN"
07.

08.

09.
Dim Fso, File, TxtFile, CsvFile, Adapter, Text, Token, i
10.

11.
Set Fso = CreateObject("Scripting.FileSystemObject")
12.

13.
Set CsvFile = Fso.CreateTextFile(CsvPath)
14.
            
15.
For Each File In Fso.GetFolder(TxtPath).Files
16.
    If LCase(Fso.GetExtensionName(File)) = LCase(TxtType) Then
17.
        Set TxtFile = Fso.OpenTextFile(File.Path)
18.
            
19.
        Text = Split(Replace(TxtFile.ReadAll, ": ", vbCrLf), vbCrLf):  TxtFile.Close
20.
            
21.
        Adapter = False:  Token = Array("", "", "")
22.
            
23.
        For i = 0 To UBound(Text)
24.
            If InStr(1, Text(i), "Hostname", vbTextCompare) > 0 Then
25.
                Token(2) = Text(i + 1)
26.
            ElseIf Token(2) <> "" Then
27.
                If InStr(1, Text(i), Adapter1, vbTextCompare) > 0 Or InStr(1, Text(i), Adapter2, vbTextCompare) > 0 Then
28.
                    Adapter = True
29.
                ElseIf Adapter Then
30.
                    If Left(LTrim(Text(i)), 6) = "Physik" Then
31.
                        Token(1) = Text(i + 1)
32.
                    ElseIf Left(LTrim(Text(i)), 2) = "IP" Then
33.
                        Token(0) = Split(Text(i + 1), "(")(0)
34.
                    End If
35.
                    If Token(0) <> "" And Token(1) <> "" Then CsvFile.WriteLine Join(Token, ";"):  Exit For
36.
                End If
37.
            End If
38.
        Next
39.
    End If
40.
Next
41.
CsvFile.Close
Gruß Dieter
Bitte warten ..
Mitglied: micneu
21.02.2010 um 12:29 Uhr
hallo leute habe jetzt ein ergebnis (langsam) und ein neues problem.
ich habe es soweit das es so funktioniert wie ich es haben wollte nur hatte ich nicht bedacht das auch einige computer
auch mehrere netzwerk schnittstellen haben und die würde ich auch gerne dem hostnamen zuordnen.

hier mein quelltext:

01.
#   **************************************************************
02.
#    einmal auf der powershell ausgeführt werden
03.
#     "Set-ExecutionPolicy Unrestricted"
04.
#   **************************************************************
05.
#    
06.
#    
07.
#   **************************************************************
08.
#   * Erstellt M.N. - POWERSHELL / Entwicklung   21.02.2010      
09.
#   **************************************************************
10.
# variablen deklarieren
11.
$start = Get-Date
12.
$ziel = "C:\Users\mne\Desktop\07_ips.txt"
13.
$endung = "*.txt"
14.
dir $ziel -filter $endung | 
15.
    ForEach-Object {
16.
        echo "Datei: $_"
17.
        $text = Get-Content $_.fullName
18.
        #echo $text
19.
        $IP = $text -match 'IPv4-Adresse|IP-Adresse'
20.
        $IP = $IP -replace 'IPv4-Adresse.*\:\s|IP-Adresse.*\:\s',''
21.
        $IP = $IP -replace '\(Bevorzugt\)\s',''
22.
        $IP = $IP -replace '/s+',''        
23.
        echo "$IP;"
24.
        $MAC = $text -match '(Physikalische Adresse).*([\d|A-F][\d|A-F]-[\d|A-F][\d|A-F]-[\d|A-F][\d|A-F]-[\d|A-F][\d|A-F]-[\d|A-F][\d|A-F]-[\d|A-F][\d|A-F])'
25.
        $MAC = $MAC -replace 'Physikalische Adresse.*\:\s',''
26.
        echo "$MAC;"
27.
        $HOSTNAME = $text -match "(Hostname)"
28.
        $HOSTNAME = $HOSTNAME -replace 'Hostname.*\:\s',''
29.
        $HOSTNAME = $HOSTNAME -replace '/s+',''
30.
        echo "$HOSTNAME"
31.
        $info = "$IP;$MAC;$HOSTNAME"
32.
        $info = $info.TrimStart()
33.
        $info = $info.TrimEnd()
34.
        $info = $info -replace '\s+',''
35.
        echo $info
36.
        Write-Output $info >> $ziel\test.csv
37.
    }
38.
$stop = Get-Date
39.
$gelaufenezeit = ($stop - $start).TotalSeconds
40.
echo "Auftrag nach $gelaufenezeit Sek. erledigt...."

gruß michael

ps: danke didi1954... ich möchte es in powershell umsetzen... werde jetzt nach und nach alle meine .vbs sachen in powershell umsetzen.
Bitte warten ..
Ähnliche Inhalte
Windows Server

PowerShell Inhalt einer csv Datei löschen

gelöst Frage von makaroniWindows Server4 Kommentare

Hallo zusammen, ich möchter gerne automatisiert über einen Task alle 10 Min eine CSV Datei via Powershell einlesen und ...

Batch & Shell

Powershell Excel bestimmten Inhalt löschen

gelöst Frage von TastuserBatch & Shell4 Kommentare

Hallo! Ich habe eine Excel-Tabelle (Tabelle1), die in Zellen B3 bis B15 und D3 bis D15 ein ü enthält. ...

Batch & Shell

Powershell Get-Content Inhalt filtern

gelöst Frage von derhoeppiBatch & Shell1 Kommentar

Guten Morgen, ich habe eine Textdatei nach dem Beispielhaften Muster Nun möchte ich diese Datei einlesen, aber bestimmte Zeilen ...

Batch & Shell

Powershell zeile ohne inhalt löschen

gelöst Frage von BlueEyePhoenixBatch & Shell4 Kommentare

Hallo Community, ich versuche über PowerShell eine Excelliste zu bearbeiten. Diese wird als xlsx geöffnet soll bearbeitet werden und ...

Neue Wissensbeiträge
Rechtliche Fragen
Unitymedia siegt vor dem BGH
Information von transocean vor 18 StundenRechtliche Fragen3 Kommentare

Moin, lt. einem aktuellen Urteil darf UM Mietrouter seiner Kunden weiterhin in Hotspots verwandeln. Nachlesen kann man das hier. ...

Router & Routing
Der "768k-Day" kommt
Information von LordGurke vor 1 TagRouter & Routing2 Kommentare

Für Leute, die Router mit BGP-Fulltable betreiben vielleicht ein interessanter Hinweis: Die IPv4-Fulltable erreicht voraussichtlich innerhalb der nächsten 2-3 ...

Debian

Partition angeblich voll, dabei aber noch nicht mal zur Hälfte belegt

Anleitung von diemilz vor 2 TagenDebian8 Kommentare

Hallo zusammen, ich habe ein kleines Problem: Ich habe auf einem physischen Debian Linux Server als ZoneMinder-Server (HP ProLiant ...

Windows 7
Updategängelung auf Windows 10, die zweite
Information von Penny.Cilin vor 6 TagenWindows 73 Kommentare

Hallo, da Windows 7 im kommenden Jahr nicht mehr supportet wird, werden Nutzer von Window 7 home premium wieder ...

Heiß diskutierte Inhalte
HTML
Bild hochladen mit html auf die Webseite
gelöst Frage von WorldoftheitHTML63 Kommentare

Will eine Seite entwickeln im Internet aber Das Bild wird nicht angezeigt woran kann das liegen? Wäre für jede ...

Vmware
Terminalserver VM - Videos ruckeln
Frage von easyriderVmware29 Kommentare

Hallo zusammen, wir haben einen (free) ESXi 5.5 auf einem HP DL 380 G8 im Einsatz. Darauf läuft, unter ...

Festplatten, SSD, Raid
Harddisk kaputt, was sagt mir ChrystalDiskInfo
gelöst Frage von InfoSeekerFestplatten, SSD, Raid23 Kommentare

Hallo zusammen, Mein Rechner lahmt. Ich stell mir die Frage woran es liegt und bin der Meinung es ist ...

Backup
Veeam Community Edition
gelöst Frage von dgrebnerBackup23 Kommentare

Hallo Zusammen, kann jemand seine praktischen Erfahrungswerte mit der Veeam-Community Edition mit mir teilen? Es gab dazu ja schon ...