Benutzer mit den meisten Antworten
Powershell ISE script speicherung (Kompliziert)

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 :/
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
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 12. Oktober 2016 23:14
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
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 12. Oktober 2016 23:14
-
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...
-
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 anlegenist heute nicht Monatg > mit der alten Datei weiterarbeiten.
MfG
-
...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.
-
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