none
Powershell ISE script speicherung (Kompliziert) RRS feed

  • Frage

  • Hallo Community,

    und zwar habe ich ein script das mir die CPU und den RAM von mehreren Server ausliest. Dafür fragt das Script erstmal eine Excel ab wo die hostnames der Server drinnen stehen. Dannach werden die ergebnisse in eine neue Excel datei geschrieben. Die ergebnisse werden dann mit dem namen: CPU_Save_05.10.2016 gespeichert (immer das aktuelle Datum natürlich)

    So und das was ich jetzt brauche ist:

    Dass das Script die Datei in der das gespeichert wird anfangs abfrägt: sind schon datensätze drinnen dann sagt da script beispeilstweise ja es ist 7 mal der Server blabla überprüft worden. Und dann erst wenn wirklich das 7 mal passiert ist (1 Woche) dann soll das Script er die Datei unter dem neuen Datum speichern also 7 Tage später wäre der 12.10.2016

    Kann das wer ?

    Meine Idee:

    Ps1 ausführen --> Speichern [1] als CPU_Save_05.10.2016

    Script überprüft ob Daten bereits da sind wenn JA

    so oft speichern unter dem Datum bis die 7 Datensätze eingetragen worden sind

    wenn Speichern [7] erofolgt dann -->

    aktueles Datum nehmen um neue Datei anzulegen

    Kann das aber nicht wirklich umsetzen :/

    Mittwoch, 5. Oktober 2016 08:27

Antworten

  • Hallo,

    erstmal grundlegend: Es empfiehlt sich nicht, Daten in Excel zu schreiben oder von dort auszulesen. Die COM-Anbindung über Excel ist zwar vorhanden und für bestimmte Zwecke (v.a. Formatierung) auch sehr gut. Um Daten zu schreiben, sollte man aber csv-Dateien benutzen. Die Cmdlets dafür sind Import-csv und Export-csv.

    Eine csv-Datei kann man zudem "flach" als Text einlesen, mit Get-Content. Dann kann man auch schnell nach schon vorhandenen Einträgen suchen.

    Viele Grüße

    Christoph

    Mittwoch, 5. Oktober 2016 09:52

Alle Antworten

  • Hallo,

    erstmal grundlegend: Es empfiehlt sich nicht, Daten in Excel zu schreiben oder von dort auszulesen. Die COM-Anbindung über Excel ist zwar vorhanden und für bestimmte Zwecke (v.a. Formatierung) auch sehr gut. Um Daten zu schreiben, sollte man aber csv-Dateien benutzen. Die Cmdlets dafür sind Import-csv und Export-csv.

    Eine csv-Datei kann man zudem "flach" als Text einlesen, mit Get-Content. Dann kann man auch schnell nach schon vorhandenen Einträgen suchen.

    Viele Grüße

    Christoph

    Mittwoch, 5. Oktober 2016 09:52
  • Kannst du mir dann sagen wie ich aus den daten dann nach nem Jahr ein Diagramm rausbekomme? mit der csv ist das scheisse xD.

    Aber egal ich brauche das so!

    Jedoch ist es jetzt einfacher geworden weil ich die Daten in einer Tabelle haben möchte jedoch jedes mal wenn er die neuen werte dazu schreiben soll überschreibt er nur die datei...

    Mittwoch, 5. Oktober 2016 10:15
  • Hallo

    Ich bin zwar auch nicht der Scriptexperte, würde hier jedoch einen anderen Weg gehen.

    Was machst du wenn dein Script mal an einem Tag nich gelaufen ist, aus was für Gründen auch immer. Dann verschiebt sich dein Diagramm um einen Wochentag.

    Ich würde an den Anfang deines Scriptes die Abfrage nach dem Wochentag setzen. Mit dem WMI-Tool geht das, liefert zwar einen Numerischen Wert zurück, kann aber für das folgende genutzt werden.
    Prüfung ist Heute Monat > Neue Datei anlegen

    ist heute nicht Monatg > mit der alten Datei weiterarbeiten.

    MfG

    Mittwoch, 5. Oktober 2016 10:42
  • Mein Vorgesetzter will das so das wird dann so eine End grafik am ende des Jahres.

    Aber bei mir überschreibt er jedes mal die Datei: 2016 und es steht genau das gleiche wieder drinnen+

    Mittwoch, 5. Oktober 2016 10:49
  • ...Diagramm rausbekomme? mit der csv ist das scheisse xD.

    Aber egal ich brauche das so!

    Wie DU ein Diagramm rausbekommst, weiß ich nicht. Ich bekäme es raus, indem ich die csv dann in Excel öffne (natürlich mit PowerShell) und dann dort ein Diagramm erstelle (natürlich auch mit PowerShell).

    Zum Anfügen an bestehende Dateien gibt es Add-Content. Deine Objekte kannst du vorher mit ConvertTo-Csv in ein csv-Format bringen. Dann musst du nur noch sicherstellen, dass dein neuer Header die gleiche Reihenfolge hat, wie der Header der bestehenden Datei. 

    Übrigens ist das hier kein "Ich will, dass mir einer ein Skript schreibt"-Forum. Wenn du trotzdem zu einem Skript kommen willst, solltest du entweder deine PowerShell-Grundlagen oder deinen Umgangston verbessern.


    Mittwoch, 5. Oktober 2016 11:11
  • Hallo

    ich glaube du must hier ersteinmal Anfangen, das Ganze etwas außeinander zu nehmen.

    1. Datenerzeugung: Auslesen der Daten und in einer log-Datei ablegen. Hier schließe ich mich der obrigen Antwort an: Lege die Daten im cvs Format ab, hier kannst du Problemlos Datensätze anhängen.

    2. Datenauswertung: Das ist dann ein Exelproblem, du kanst bei Excel problemlos externe Datensätze (cvs) Importieren, eintragen lassen lassen und auswerten. Eventuell brauchst du dafür ein extra Script

    Du kannst aber kaum beides in einem Rutsch durcherledigen.

    MfG


    PS.: Kümmere dich ersteinmal um einen Schritt nach dem Anderen. Also ersteinmal die Datenerzeugung und erst wenn die richtig läuft kannst du dich um die Auswertung kümmern.
    • Bearbeitet Stefan Jä Mittwoch, 5. Oktober 2016 11:24 Nachtrag
    Mittwoch, 5. Oktober 2016 11:13
  • Ok nein es ging auch ohne csv musste nur wissen wie jetzt geht es auf jeden fall :D
    Donnerstag, 6. Oktober 2016 07:24