Erstmal Danke für die vielen guten und konstruktiven Vorschläge/Ideen bzw. "Komplettlösungen".
Ich möchte euch daher mehr Infos geben warum ich das so machen möchte wie eingangs erwähnt.
Um was geht es eigentlich?
Es geht um ein eLearning System. In diesem kann man einem User X eLearning-Module ("Schulungen") zuweisen. Davon hat er Y beendet (am Ende einer Schulung gibt es immer kurze Tests in Form von Multiple Choice Fragen).
Nun ist es für den Vorgesetzten interessant welcher MA schon welche Schulungen beendet hat und welche noch fehlen.
Dazu konnte man in der Vergangenheit einen Report generieren (bietet das eLearning System an), sämtliche Infos in ein CSV exportiert werden (entspricht aktuell DateiA).
Durch ein Update ist dieser Report fehlerhaft - sämtliche Schulungen, egal ob offen oder beendet, werden als offen angezeigt (Passed = 0).
Der Hersteller sagt, dass dieser Report nicht mehr supportet ist und verweist auf einen anderen Report.
In diesem sind aber nur alle beendeten Schulungen beinhaltet (Passed = 1).
Daher mein Angang die beiden Reports zu einem für uns brauchbaren Report zusammenzufassen.
Der bisherige Report wird dann von einem Kollegen in eine SQL DB geschrieben, dann gibt es noch eine Website die auf die DB zugreift und die Daten entsprechend aufbereitet und anzeigt (damit habe ich aber nichts zu tun und ist für das eigentliche Problem nicht wichtig).
Warum werden die Daten nicht gleich in eine DB exportiert?
Technisch ist das möglich und falls ich gar nicht weiterkomme durchaus eine Option.
Ja äääh warum dann überhaupt das Ganze irgendwie anders lösen?
Das liegt an mir - ich beschäftige mich gerne mir neuen Dingen und versuche, eigentlich recht simple Dinge wie in diesem Fall, sowas zu lösen/automatisieren.
Warum PowerShell?
Weil ich das am besten kann. ^^
Wie schaut das aktuelle PowerShell Script aus?
Das habe ich jetzt nicht zur Hand, ich kann nur die einzelnen Steps widergeben:
---------
Auf Arbeit habe ich mich (heute) die restliche Zeit mit Python und Pandas befasst. Aber bin nicht weit gekommen - CSV einlesen und da drin nach bestimmten Werten suchen hat geklappt - und das sehr schnell.
Ggf. werde ich das auch nochmal mit den PowerShell Hashtables ausprobieren.
Ich bin kein Programmierer (wie man auch merkt) - ich bin SysAdmin und PowerShell gehört zu meinem täglich Brot, habe so eine Aufgabe aber auch das erste Mal. Grundsätzlich habe ich die Lösung schon in PowerShell, es ist nur arschlahm, deswegen hier die Nachfrage.
Wie schon erwähnt bin ich dankbar für Denkanstöße, bin ein Verfechter davon dann aus Eigeninitiative und -interesse mich weiter einzulesen und auszuprobieren.
Ich hoffe ich konnte etwas Licht ins Dunkle meines Arbeitsalltags bringen.
edit
@BeBur
Deinen Post habe ich ehrlich gesagt nicht verstanden. Worauf willst du hinaus?
Ich möchte euch daher mehr Infos geben warum ich das so machen möchte wie eingangs erwähnt.
Um was geht es eigentlich?
Es geht um ein eLearning System. In diesem kann man einem User X eLearning-Module ("Schulungen") zuweisen. Davon hat er Y beendet (am Ende einer Schulung gibt es immer kurze Tests in Form von Multiple Choice Fragen).
Nun ist es für den Vorgesetzten interessant welcher MA schon welche Schulungen beendet hat und welche noch fehlen.
Dazu konnte man in der Vergangenheit einen Report generieren (bietet das eLearning System an), sämtliche Infos in ein CSV exportiert werden (entspricht aktuell DateiA).
Durch ein Update ist dieser Report fehlerhaft - sämtliche Schulungen, egal ob offen oder beendet, werden als offen angezeigt (Passed = 0).
Der Hersteller sagt, dass dieser Report nicht mehr supportet ist und verweist auf einen anderen Report.
In diesem sind aber nur alle beendeten Schulungen beinhaltet (Passed = 1).
Daher mein Angang die beiden Reports zu einem für uns brauchbaren Report zusammenzufassen.
Der bisherige Report wird dann von einem Kollegen in eine SQL DB geschrieben, dann gibt es noch eine Website die auf die DB zugreift und die Daten entsprechend aufbereitet und anzeigt (damit habe ich aber nichts zu tun und ist für das eigentliche Problem nicht wichtig).
Warum werden die Daten nicht gleich in eine DB exportiert?
Technisch ist das möglich und falls ich gar nicht weiterkomme durchaus eine Option.
Ja äääh warum dann überhaupt das Ganze irgendwie anders lösen?
Das liegt an mir - ich beschäftige mich gerne mir neuen Dingen und versuche, eigentlich recht simple Dinge wie in diesem Fall, sowas zu lösen/automatisieren.
Warum PowerShell?
Weil ich das am besten kann. ^^
Wie schaut das aktuelle PowerShell Script aus?
Das habe ich jetzt nicht zur Hand, ich kann nur die einzelnen Steps widergeben:
- Beide Reports (CSV Dateien) werden jeweils in eine Variable mit Import-Csv importiert (hier dachte ich eigentlich, dass die Daten dann schon im Speicher liegen...)
- DateiA (wo die falschen Werte drin stehen) wird durchiteriert
- Wenn in der aktuellen Zeile bestimmte Werte (Object UID and User and Mode) auch in DateiB gefunden werden ($DateiB | where...)...
- ...wird der Wert für "Passed" in der aktuellen Zeile auf 1 gesetzt
- Wenn das durch ist wird das ganze per Export-Csv weggeschrieben
- Dann kann diese weggeschriebene Datei für den weiteren Weg verwendet werden
---------
Auf Arbeit habe ich mich (heute) die restliche Zeit mit Python und Pandas befasst. Aber bin nicht weit gekommen - CSV einlesen und da drin nach bestimmten Werten suchen hat geklappt - und das sehr schnell.
Ggf. werde ich das auch nochmal mit den PowerShell Hashtables ausprobieren.
Ich bin kein Programmierer (wie man auch merkt) - ich bin SysAdmin und PowerShell gehört zu meinem täglich Brot, habe so eine Aufgabe aber auch das erste Mal. Grundsätzlich habe ich die Lösung schon in PowerShell, es ist nur arschlahm, deswegen hier die Nachfrage.
Wie schon erwähnt bin ich dankbar für Denkanstöße, bin ein Verfechter davon dann aus Eigeninitiative und -interesse mich weiter einzulesen und auszuprobieren.
Ich hoffe ich konnte etwas Licht ins Dunkle meines Arbeitsalltags bringen.
edit
@BeBur
Deinen Post habe ich ehrlich gesagt nicht verstanden. Worauf willst du hinaus?