Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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- Software Versionen Zählen

Frage Entwicklung Batch & Shell

Mitglied: aivilon

aivilon (Level 1) - Jetzt verbinden

24.04.2012 um 11:31 Uhr, 4606 Aufrufe, 17 Kommentare

Moin Moin

Brauch ein wenig Hilfe mit Powershell, da ich so gut wie kein bisschen Powershell kann. Ich möchte von ca. 70 Servern die vorhandene Software auslesen und pro Server Loggen.

Jo. Bis jetzt habe ich so weit ein PS Script, welches Server für Server die Softwareversionen ausliest. Was mir an diesem nicht so gefällt ist, dass ich für den Servernamen eine Variable habe. Diese wird immer um 1 erhöht. Da aber auch mal eine Zahl der Servernamen fehlen kann, ist das eine unschöne Lösung.
Ich möchte es so, dass in einer Schlaufe die Servernamen aus einem Textfile ausgelesen und abgearbeitet werden.
Also im Textfile steht zum Beispiel:
Server1
Server2
Server3
Server5

Das Script arbeitet jetzt einen nach dem anderen Durch. Das Resultat (Diesen Schritt habe ich auch schon) wird unter C:\Temp in ein Logfile das den Servernamen (C:\Temp\Test_Server1.log) trägt, geschrieben. Das ist soweit auch von mir gewünscht.

Im letzten Teil, und an diesem hänge ich gerade fest, möchte ich aus den eben erstellten Logs neue erstellen. Die Namen der Logs soll der Software und deren Version entsprechen (Beispiel: F-Secure_7.1.5.log). Darin enthalten sind die Server, auf denen diese Version läuft.
Bei diesem Teil brauche ich ein wenig hilfe =)


Die Situation ist kompliziert. Weiss kaum wie ich das schreiben soll. Also seid mir nicht böse wenns ein wenig kompliziert geschrieben ist. Bei fragen, fragen ;)

Grüsse
aivilon
Mitglied: Connor1980
24.04.2012 um 12:12 Uhr
Hi,

hilfreich wäre, wenn du dein script hier mal bekanntgibst, so kann man nicht helfen.

Grundsätzlich: da du einmal nach Server und einmal nach Software sortiert/Gruppiert haben möchtest, bietet es sich an eine .csv Datei zu erstellen und in einer Tabellenkalkulation damit weiterzuarbeiten? Dann kannst du flexibel umsortieren, filtern etc, wie du möchtest.

Grüße
Bitte warten ..
Mitglied: Scriptex
24.04.2012 um 12:17 Uhr
Hallo aivilon,

ein Vorschlag wäre (wenn ich dich richtig verstanden habe) sicherlich eine If-Abfrage für jedes Log:

01.
$Server1 = gc "C:\Temp\Test_Server1.log"                                                                # Variable festlegen: Get-Content 'erste Logfile' 
02.
If ($Server1 -like  "*F-Secure 7.1.5*")                                                             # erste Software-Abfrage (Sternchen nicht vergessen) 
03.
04.
   Write-Output "Server1" > "C:\Temp\F-Secure7_1_5.txt"                                        # schreibt "Server1" in die Datei 'F-Secure7_1_5.txt' 
05.
06.
else 
07.
08.
        If ($Server1 -like "*Software Nr2*") 
09.
10.
            Write-Output "Server1" > "C:\Temp\SoftwareNr2..txt" 
11.
12.
        else 
13.
14.
            # und so weiter.... 
15.
16.
   }
Ich weiß nicht, wie genau dein Skript die Software-Versionen in die Datei schreibt, deswegen die Sternchen. Die Idee mit der Textfile mit den Servernamen ist auf jeden Fall viel besser als die mit der Variable.

Mein Ansatz oben müsste eigentlich funktionieren, das bekommt man sicherlich auch noch 'schöner' in einer ForEach-Schleife hin. Um nicht jedesmal das Skript verändern zu müssen, wenn du ein neues Logfile auslesen willst, kannst du z.B. Read-Host verwenden, um per GUI-Eingabe die Variable zu setzen.

Ich hoffe ich konnte dir helfen!
Gruß Scriptex
Bitte warten ..
Mitglied: aivilon
24.04.2012 um 12:20 Uhr
Zitat von Connor1980:
Hi,

hilfreich wäre, wenn du dein script hier mal bekanntgibst, so kann man nicht helfen.

Grundsätzlich: da du einmal nach Server und einmal nach Software sortiert/Gruppiert haben möchtest, bietet es sich an
eine .csv Datei zu erstellen und in einer Tabellenkalkulation damit weiterzuarbeiten? Dann kannst du flexibel umsortieren, filtern
etc, wie du möchtest.

Grüße

Jo mein Script sieht mal so aus:
01.
$srvname=91401 
02.
 
03.
while($srvname -ne 91403) 
04.
05.
		get-wmiobject -class Win32_Product -computername sfd$srvname | where-object{$_.Vendor -eq "Symantec Corporation"}| Out-File C:\Temp\Test_sfd$srvname.log 
06.
		$srvname++ 
07.
08.
echo ende
Wie schon erwähnt. ich möchte das mit dem Servernamen so umschreiben, dass diese aus einem Textfile Zeile für Zeile ausgelesen werden. Das wäre schöner, da ich so auch Kontrolliert abfragen kann.

Jo wäre sicher netter als CSV. Respektive zum Beispiel:
Zelle 1 Zelle 2 Zelle 3
ServerName Software Software Version
Bitte warten ..
Mitglied: aivilon
24.04.2012 um 12:28 Uhr
Zitat von Scriptex:
Hallo aivilon,

ein Vorschlag wäre (wenn ich dich richtig verstanden habe) sicherlich eine If-Abfrage für jedes Log:

01.
> $Server1 = gc "C:\Temp\Test_Server1.log"                                                                # Variable 
02.
> festlegen: Get-Content 'erste Logfile' 
03.
> If ($Server1 -like  "*F-Secure 7.1.5*")                                                             # erste 
04.
> Software-Abfrage (Sternchen nicht vergessen) 
05.
>    { 
06.
>    Write-Output "Server1" > "C:\Temp\F-Secure7_1_5.txt"                                        # schreibt 
07.
> "Server1" in die Datei 'F-Secure7_1_5.txt' 
08.
>    } 
09.
> else 
10.
>    { 
11.
>         If ($Server1 -like "*Software Nr2*") 
12.
>             { 
13.
>             Write-Output "Server1" > "C:\Temp\SoftwareNr2..txt" 
14.
>             } 
15.
>         else 
16.
>             { 
17.
>             # und so weiter.... 
18.
>             } 
19.
>    } 
20.
> 
Ich weiß nicht, wie genau dein Skript die Software-Versionen in die Datei schreibt, deswegen die Sternchen. Die Idee mit der
Textfile mit den Servernamen ist auf jeden Fall viel besser als die mit der Variable.

Mein Ansatz oben müsste eigentlich funktionieren, das bekommt man sicherlich auch noch 'schöner' in einer
ForEach-Schleife hin. Um nicht jedesmal das Skript verändern zu müssen, wenn du ein neues Logfile auslesen willst,
kannst du z.B. Read-Host verwenden, um per GUI-Eingabe die Variable zu setzen.

Ich hoffe ich konnte dir helfen!
Gruß Scriptex

Hmm. So weit ich dein Code verstanden habe, ist die Software Version statisch. Da ich mind. 3 verschiedene Programme drauf hab, gibt mir der (Sorry das hatte ich noch nicht erwähnt) get-wmiobject -class Win32_Product Befehl alle Software nach folgendem muster aus:

IdentifyingNumber : {FE2F6A2C-196E-4210-9C04-2B1BC21F07EF}
Name : VMware Tools
Vendor : VMware, Inc.
Version : 8.0.4.24748
Caption : VMware Tools

Aus dieser ausgabe möchte ich nun den Namen und die Version (und bei einem Programm Caption) auslesen. Diese Angaben sollen jeweils nach folgendem Muster hintereinander in das CSV platziert werden: Servername;Name (Software);Version;Caption

Somit hätte ich dann eine gesamte übersicht über die Verwendet Software.

Grüsse
aivilon
Bitte warten ..
Mitglied: Scriptex
24.04.2012 um 12:54 Uhr
Hallo aivilon,

hiermit erhälst du schonmal nur die gewünschten Eigenschaften aus der Ausgabe:

01.
$Serverliste = gc "C:\Temp\Serverliste.txt"  
02.
ForEach ($line in $Serverliste) 
03.
04.
        Get-WmiObject -Class Win32_Product| ft -Property Name, Version, Caption 
05.
        }
Sieht allerdings nicht so bombe aus. Ich wüsste aber gerade nicht, wie man das zurechtbiegen kann, irgendwie geht es mit Sicherheit.

Der Code liest auf jedem Server die installierte Software aus und zeigt dann Name, Version und Caption jeder Software spaltenweise (tabellenartig) an.
Bitte warten ..
Mitglied: aivilon
24.04.2012 um 13:48 Uhr
Zitat von Scriptex:
Hallo aivilon,

hiermit erhälst du schonmal nur die gewünschten Eigenschaften aus der Ausgabe:

01.
> $Serverliste = gc "C:\Temp\Serverliste.txt"  
02.
> ForEach ($line in $Serverliste) 
03.
>         { 
04.
>         Get-WmiObject -Class Win32_Product| ft -Property Name, Version, Caption 
05.
>         } 
06.
> 
Sieht allerdings nicht so bombe aus. Ich wüsste aber gerade nicht, wie man das zurechtbiegen kann, irgendwie geht es mit
Sicherheit.

Der Code liest auf jedem Server die installierte Software aus und zeigt dann Name, Version und Caption jeder Software spaltenweise
(tabellenartig) an.

Hmm hatte grad was ähnliches zusammengestiefelt. Funktionierte aber nicht.
Dementsprechend habe ich jetzt deinen Code noch ein wenig angepasst:
01.
$srvlist = GC C:\Temp\Serverlist.txt 
02.
 foreach ( $zeile in $srvlist ) 
03.
04.
		$srvname=$zeile 
05.
		$Software=get-wmiobject -class Win32_Product -computername $srvname | ft -Property Name, Version, Caption 
06.
07.
Out-File -FilePath C:\Temp\grossertest.csv -InputObject $srvname;$Software
Klappt wunderbar. Nur, wie bringe ich diese jetzt in ein csv? der Out-File befehl schreibt nur den Servernamen auf.
Bitte warten ..
Mitglied: Scriptex
24.04.2012 um 14:52 Uhr
Ich benutze Out-File meist immer nur in Form von '>', also müsste es doch gehen, wenn man es dreht...

01.
$srvname;$Software > "C:\Temp\grossertest.csv" -Append
Es könnte sein, dass man das -Append auch weglassen kann. Bin mir nicht sicher.
Oder alternativ:

01.
$srvname  > "C:\Temp\grossertest.csv" 
02.
$Software >>  > "C:\Temp\grossertest.csv"
Ich kann es leider gerade nicht testen, würde mich mal interessieren, ob die Spalten korrekt angehängt werden oder erst die Namen, und dann die Eigenschaften...
Bitte warten ..
Mitglied: aivilon
24.04.2012 um 14:55 Uhr

Entweder ich raff das net...oder es hilft mir nicht direkt.

ich hatte es versucht, aber die ausgabe konnte ich nicht brauchen.

Ich bin jetzt so weit, dass die ausgabe wie folgt aussieht:

Name Version Caption
------- -------
F-Secure Anti-Virus for... 9.00 F-Secure Anti-Virus fo...
Windows Automated Insta... 2.0.0.0 Windows Automated Inst...
Symantec NetBackup 7.1 Symantec NetBackup
F-Secure Anti-Virus for... 900.08 F-Secure Anti-Virus fo...
VMware Tools 8.0.4.24748 VMware Tools
F-Secure Anti-Virus for... 900.02 F-Secure Anti-Virus fo...
Symantec NetBackup 7.1.... 0000.2000 Symantec NetBackup 7.1...



Name Version Caption
------- -------
Symantec NetBackup Client 7.1 Symantec NetBackup Client
F-Secure Anti-Virus for... 9.00 F-Secure Anti-Virus fo...
VMware Tools 8.0.4.24748 VMware Tools
Symantec NetBackup 7.1.... 0000.2000 Symantec NetBackup 7.1...

Nur kann ich das so nicht wirklich brauchen. auch, weil alles in Spalte A geschrieben wird.
Es sollte so aussehen:
Servername Name Version Caption

Ich denke da an eine Abfolge wie diese:
01.
 foreach ( $zeile in $srvlist ) 
02.
03.
		$srvname=$zeile 
04.
		$srvname;(get-wmiobject -class Win32_Product -computername $srvname | ft -Property Name, Version, Caption) 
05.
		foreach (Programm in get-wmiobject -class Win32_Product -computername $srvname) 
06.
07.
				$srvname;Name;Version;Caption | Out-File C:\Temp\Test.csv 
08.
			}
dass PS dann für jedes programm gleich eine solche Zeile in ein csv schreibt.
Bitte warten ..
Mitglied: aivilon
24.04.2012 um 14:57 Uhr
Zitat von Scriptex:
Ich benutze Out-File meist immer nur in Form von '>', also müsste es doch gehen, wenn man es dreht...

01.
> $srvname;$Software > "C:\Temp\grossertest.csv" -Append 
02.
> 
Es könnte sein, dass man das -Append auch weglassen kann. Bin mir nicht sicher.

Was ins CSV schreiben tut es. Nur ist ja das Problem, dass ich jetzt eine Variable für mehrere Programme habe
Bitte warten ..
Mitglied: Scriptex
24.04.2012 um 15:03 Uhr
Prinzipiell kann PS die Informationen so verarbeiten, wie du es wünschst. Was meiner Meinung nach nur noch als letztes fehlt, ist, dass PS Spalten in der CSV "erkennt" und jede Eigenschaft in eine eigene schreibt. Ich habe alle Tabellen, die ich mit PowerShell irgendwann mal erstellt habe, durchgeschaut und alle haben die Daten in eine Spalte geschrieben.
Irgendeinen Parameter muss es aber doch geben, ist doch schließlich nur Kosmetik... :/


EDIT: Ich habe gerade eine TXT gefunden, wo PS es richtig schön übersichtlich abgespeichert hat. Vielleicht ist das die Lösung.
Bitte warten ..
Mitglied: aivilon
24.04.2012 um 15:15 Uhr
Zitat von Scriptex:
Prinzipiell kann PS die Informationen so verarbeiten, wie du es wünschst. Was meiner Meinung nach nur noch als letztes fehlt,
ist, dass PS Spalten in der CSV "erkennt" und jede Eigenschaft in eine eigene schreibt. Ich habe alle Tabellen, die ich
mit PowerShell irgendwann mal erstellt habe, durchgeschaut und alle haben die Daten in eine Spalte geschrieben.
Irgendeinen Parameter muss es aber doch geben, ist doch schließlich nur Kosmetik... :/


EDIT: Ich habe gerade eine TXT gefunden, wo PS es richtig schön übersichtlich abgespeichert hat. Vielleicht ist das die
Lösung.

wenn ich das in ein txt schreibe ist es schon übersichtlich. Aber es wäre übersichtlicher wenn ich das so in ein csv schreiben könnte. wegen dem sortieren
Bitte warten ..
Mitglied: Connor1980
24.04.2012 um 15:18 Uhr
Hi,

wenn es txt ist, wie sieht es aus? csv ist ja nichts anderes als Trennzeichen-getrennte Textdatei. Wenn du z.B. ";" als delimiter benutzt kannst du das teil einfach in excel importieren/öffnen, evtl. noch über "Daten in Spalten" richtig zuordnen.

Grüße
Bitte warten ..
Mitglied: aivilon
24.04.2012 um 15:22 Uhr
Zitat von Connor1980:
Hi,

wenn es txt ist, wie sieht es aus? csv ist ja nichts anderes als Trennzeichen-getrennte Textdatei. Wenn du z.B. ";" als
delimiter benutzt kannst du das teil einfach in excel importieren/öffnen, evtl. noch über "Daten in Spalten"
richtig zuordnen.

Grüße

im editor selber sieht es schöner aus. Also grössere Abstände.

F-Secure Anti-Virus for... 9.00 F-Secure Anti-Virus fo...
Windows Automated Insta... 2.0.0.0 Windows Automated Inst...
Symantec NetBackup 7.1 Symantec NetBackup
F-Secure Anti-Virus for... 900.08 F-Secure Anti-Virus fo...
VMware Tools 8.0.4.24748 VMware Tools
F-Secure Anti-Virus for... 900.02 F-Secure Anti-Virus fo...
Symantec NetBackup 7.1.... 0000.2000 Symantec NetBackup 7.1...



Symantec NetBackup Client 7.1 Symantec NetBackup Client
F-Secure Anti-Virus for... 9.00 F-Secure Anti-Virus fo...
VMware Tools 8.0.4.24748 VMware Tools
Symantec NetBackup 7.1.... 0000.2000 Symantec NetBackup 7.1...



Edit:

wie kann ich bei custom Tables als trennzeichen ein ; angeben? Dann wäre das Problem gelöst

01.
$a = @{Expression={$_.Name};Label="Process Name";width=25}, ` 
02.
@{Expression={$_.ID};Label="Process ID";width=15}, ` 
03.
@{Expression={$_.MainWindowTitle};Label="Window Title";width=40} 
04.
 
05.
		$srvname;(get-wmiobject -class Win32_Product -computername $srvname | ft $a -Property Name, Version, Caption -hide) | Out-File C:\Temp\grossertest.csv -append
Bitte warten ..
Mitglied: aivilon
26.04.2012 um 15:08 Uhr
Ha...hab mein gewünschtes ziel FAST erreicht!!
01.
$srvname;get-wmiobject -class "Win32_Product" -namespace "root\CIMV2" -computername $srvname | select-object Vendor, Name, Version, InstallDate, HelpLink | Export-Csv -path c:\Temp\installierte_programme.csv -UseCulture
Nur hab ich jetzt das Problem, dass der Servername nicht am Anfang im csv vor jeder zeile steht (also in spalte A). hinzu kommt, dass das csv nicht erweitert, sondern überschrieben wird.

weiss da grad jemand abhilfe?
Bitte warten ..
Mitglied: aivilon
30.04.2012 um 10:44 Uhr
Also, ich habs jetzt fast. Faster als vorhin :P

01.
#Erstelle Ordner für die CSV-Files 
02.
mkdir C:\temp\ServerProgramme 
03.
#Variable für die Serverliste inkl. Pfad 
04.
$srvlist = GC C:\Temp\Serverlist.txt 
05.
#Jeder Server auf der Serverliste wird nach den installierten 
06.
#Programmen abgefragt. Resultat wird in ein csv geschrieben 
07.
 foreach ( $zeile in $srvlist ) 
08.
09.
		$srvname=$zeile 
10.
		$pfad = 'C:\Temp\ServerProgramme\' + $srvname + '_installierte_programme.csv' 
11.
		$srvname;get-wmiobject -class Win32_Product -namespace root\CIMV2 -computername $srvname | select-object @{name='Server'; expression={$srvname}}, Vendor, Name, Version, InstallDate, HelpLink | Export-Csv -path $pfad -UseCulture -NoTypeInformation  
12.
 
13.
14.
	 
15.
#Variable wird mit null gefüllt damit sie vorerst vorhanden ist 
16.
$content = @() 
17.
  
18.
#Pfad, in welchem die CSV Files liegen 
19.
$directory = "C:\Temp\ServerProgramme" 
20.
#liest die CSV File namen aus und blendet alle anderen files aus 
21.
$csvFiles = Get-ChildItem -Path $directory -Filter *.csv 
22.
  
23.
#jedes file wird abgearbeitet und der inhalt in ein merged file geschrieben 
24.
foreach($csv in $csvFiles) 
25.
26.
	$content += Import-Csv $directory\$csv 
27.
28.
  
29.
#Schreibt ein Tag-Zeit Stempel in den namen des neuen Files und exportiert $content 
30.
$datetime = Get-Date -Format "yyyyMMddhhmmss" 
31.
$content | Export-Csv -Path "C:\Temp\ServerProgramme\merged_$datetime.csv" -UseCulture -NoTypeInformation
Mein letztes Problem ist, dass das zusammengeführte CSV sporadisch bei einigen zeilen einfach was abschneided, respektive nicht mehr enthält. bei den einzelnen csvs in der ersten foreach schleife ist alles vorhanden.

ich nehme an, dass die lösung dieses problems auch das problem löst, dass das zusammengeführte csv file wieder jede zeile in eine zelle steckt.
Bitte warten ..
Mitglied: aivilon
30.04.2012 um 11:11 Uhr
Zitat von aivilon:
Also, ich habs jetzt fast. Faster als vorhin :P

01.
> #Erstelle Ordner für die CSV-Files 
02.
> mkdir C:\temp\ServerProgramme 
03.
> #Variable für die Serverliste inkl. Pfad 
04.
> $srvlist = GC C:\Temp\Serverlist.txt 
05.
> #Jeder Server auf der Serverliste wird nach den installierten 
06.
> #Programmen abgefragt. Resultat wird in ein csv geschrieben 
07.
>  foreach ( $zeile in $srvlist ) 
08.
> 	{ 
09.
> 		$srvname=$zeile 
10.
> 		$pfad = 'C:\Temp\ServerProgramme\' + $srvname + '_installierte_programme.csv' 
11.
> 		$srvname;get-wmiobject -class Win32_Product -namespace root\CIMV2 -computername $srvname | select-object 
12.
> @{name='Server'; expression={$srvname}}, Vendor, Name, Version, InstallDate, HelpLink | Export-Csv -path $pfad 
13.
> -UseCulture -NoTypeInformation  
14.
>  
15.
> 	} 
16.
> 	 
17.
> #Variable wird mit null gefüllt damit sie vorerst vorhanden ist 
18.
> $content = @() 
19.
>   
20.
> #Pfad, in welchem die CSV Files liegen 
21.
> $directory = "C:\Temp\ServerProgramme" 
22.
> #liest die CSV File namen aus und blendet alle anderen files aus 
23.
> $csvFiles = Get-ChildItem -Path $directory -Filter *.csv 
24.
>   
25.
> #jedes file wird abgearbeitet und der inhalt in ein merged file geschrieben 
26.
> foreach($csv in $csvFiles) 
27.
> { 
28.
> 	$content += Import-Csv $directory\$csv 
29.
> } 
30.
>   
31.
> #Schreibt ein Tag-Zeit Stempel in den namen des neuen Files und exportiert $content 
32.
> $datetime = Get-Date -Format "yyyyMMddhhmmss" 
33.
> $content | Export-Csv -Path "C:\Temp\ServerProgramme\merged_$datetime.csv" -UseCulture -NoTypeInformation 
34.
> 
Mein letztes Problem ist, dass das zusammengeführte CSV sporadisch bei einigen zeilen einfach was abschneided, respektive
nicht mehr enthält. bei den einzelnen csvs in der ersten foreach schleife ist alles vorhanden.

ich nehme an, dass die lösung dieses problems auch das problem löst, dass das zusammengeführte csv file wieder jede
zeile in eine zelle steckt.


PROBLEM gelöst!
Ich weiss nicht warum es zeilen abgeschnitten hat, aber folgende zeilen wurde mit -useculture ergänzt:
01.
foreach($csv in $csvFiles) 
02.
03.
	$content += Import-Csv $directory\$csv -UseCulture 
04.
}

Beitrag demnach auch gelöst!

Danke und Grüsse
aivilon
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Powershell - In Textdatei suchen und ersetzen (5)

Frage von Raaja89 zum Thema Batch & Shell ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Batch & Shell
gelöst PowerShell Domain Join (2)

Frage von Patrick-IT zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (32)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...