Ich schreibe eine Powershell-Funktion, die eine foreach-Schleife ausführt. Die Schleifen durchlaufen jeden Servernamen in einer Textdateiliste von Hosts und ziehen dann für jeden einzelnen den freien Speicherplatz auf C und weisen ihn dann einer Variablen zu.Anordnen der Ausgabe zu CSV von Powershell foreach Schleife
Dann durchläuft eine weitere Schleife die Liste erneut und erhält den Namen der Hosts und fügt sie dann zu einer Variablen hinzu.
Dann habe ich eine Variable, die die zwei Variablen mit den Daten aus den Schleifen gezogen und exportiert es in CSV. Es fügt die richtigen Daten in die CSV ein, aber ich möchte es in einer bestimmten Weise formatieren. Die aktuelle CSV-Ausgabe ist (für 4 Einträge zum Beispiel) 'Server 1' 'Server2' 'Server 3' 'Server 4' 'DiskspaceWert1' '2' '3' '4' etc.
Also ich bin an dem Punkt wo ich alle Daten habe, die ich brauche, aber ich muss es so arrangieren, dass eine Zelle den Servernamen hat und dann die Zelle daneben ihren entsprechenden Wert hat.
Ich habe das Gefühl, ich sollte Objekte erstellen oder ein Array verwenden, aber fragte mich, ob ich etwas hinzufügen konnte, um die gewünschte Formatierung basierend auf dem Skript, das ich bisher geschrieben habe, zu implementieren?
function diskcheck {
$freespace = Get-Content C:\temp2\DiskspaceProj\hosts.txt | Foreach-Object {
Get-WmiObject win32_logicaldisk -Computername $_ -Filter "DeviceID='C:'" | select -ExpandProperty "FreeSpace"
}
$hostName = Get-Content C:\temp2\DiskspaceProj\hosts.txt | Foreach-Object {
Get-WmiObject Win32_ComputerSystem -ComputerName $_ | Select -ExpandProperty "Name"
}
$output = "$hostname, $freespace" | echo > C:\temp2\DiskspaceProj\diskspace.csv
}
diskcheck
Das läuft super. Allerdings bekomme ich eine seltsame Ausgabe in der CSV. Die Werte werden in jeder Zelle als 'System.Object []' angezeigt. Irgendwelche Ideen? –
scratchen, dass es gut funktioniert. Tippfehler an meinem Ende. –