none
Logfile erstellen und per Mail in Powershell versenden RRS feed

  • Frage

  • Hallo,

    $a=get-content c:\temp\serverliste.txt
    foreach($server in $a){
    Get-Wmiobject win32_process -computer $server |
        Where-Object {$_.name -like "iexplore.exe" -and $_.ws -gt "100000"} |
            Select-Object  __Server,WS,name,@{n="owner";e={$_.getowner().user}} |
            ForEach-Object { write-host "Warnung! Auf Server: $($_.__Server),Prozess: $($_.name), WS: $($_.WS), User: $($_.owner)"}
    	
    }

    soweit bin ich! Ich erhalte auch damit das gewünschte Ergebnis.

    Jetzt möchte ich das in ein LogFile schreiben und wenn ein Logfile ( nur dann) existiert es per Mail aus dem Script heraus versenden.

    Diese Zeile habe ich ersetzt und statt write host habe ich out-file -append eingefügt. Leider hagelt es dann Fehler!

    ForEach-Object { write-host "Warnung! Auf Server: $($_.__Server),Prozess: $($_.name), WS: $($_.WS), User: $($_.owner)"}
    Fehler lautet:

    Es wurde kein Positionsparameter gefunden, der das Argument "Warnung! bla bla bla .... akzeptiert..............

    Um anschließend das Log-File zu versenden reicht es da am Ende des Scripts ein if exist logfile.txt then send-mailmessage einzufügen?

    Danke für die Hilfe!

    Montag, 27. Mai 2013 12:28

Antworten

  • File erstellt er jetzt aber leider ohne Inhalt. Sprich logfile ist leer.

    Da muss was drin sein! Da wir ja einen String übergeben! Bitte überprüf das nochmal!

    Hast du eine Idee wie ich das prüfe ob ein File da ist und wenn ja das es per mail versendet wird?

    Welches File? Das was wir eben selbst erstellt haben? Warum soll ich das Prüfen wenn ich es eben gerade erst selbst angelegt habe?

    Schau dir mal das Cmdlet Test-Path und die Beispiele darin an:
    http://www.colorconsole.de/PS_Windows/de/Test-Path.htm

    Schau dir mal das Cmdlet Send-MailMessage und die Beispiele darin an:
    http://www.colorconsole.de/PS_Windows/de/Send-MailMessage.htm

    Jedes Cmdllet hat eine sehr gute Hilfe Datei mit sehr guten Beispielen !
    Schau dir mal mein Viedeo dazu an!
    http://www.youtube.com/watch?v=M_01gvbpAxo


    Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
    German ? Come to German PowerShell Forum!

    Montag, 27. Mai 2013 15:17

Alle Antworten

  • ForEach-Object { "Warnung! Auf Server: $($_.__Server),Prozess: $($_.name), WS: $($_.WS), User: $($_.owner)" | Out-File -FilePath 'C:\haste\nicht\gesehen.log' -Append }


    Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
    German ? Come to German PowerShell Forum!

    Montag, 27. Mai 2013 12:40
  • Hallo Peter,

    immer die Selben :) die hier antworten. Danke für den Support.

    File erstellt er jetzt aber leider ohne Inhalt. Sprich logfile ist leer.

    Hast du eine Idee wie ich das prüfe ob ein File da ist und wenn ja das es per mail versendet wird?

    @edit

    habe das write-host rausgenommen jetzt füllt er das File mit den entsprechenden Zeilen

    • Bearbeitet Joshua32 Montag, 27. Mai 2013 13:39
    Montag, 27. Mai 2013 13:34
  • File erstellt er jetzt aber leider ohne Inhalt. Sprich logfile ist leer.

    Da muss was drin sein! Da wir ja einen String übergeben! Bitte überprüf das nochmal!

    Hast du eine Idee wie ich das prüfe ob ein File da ist und wenn ja das es per mail versendet wird?

    Welches File? Das was wir eben selbst erstellt haben? Warum soll ich das Prüfen wenn ich es eben gerade erst selbst angelegt habe?

    Schau dir mal das Cmdlet Test-Path und die Beispiele darin an:
    http://www.colorconsole.de/PS_Windows/de/Test-Path.htm

    Schau dir mal das Cmdlet Send-MailMessage und die Beispiele darin an:
    http://www.colorconsole.de/PS_Windows/de/Send-MailMessage.htm

    Jedes Cmdllet hat eine sehr gute Hilfe Datei mit sehr guten Beispielen !
    Schau dir mal mein Viedeo dazu an!
    http://www.youtube.com/watch?v=M_01gvbpAxo


    Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
    German ? Come to German PowerShell Forum!

    Montag, 27. Mai 2013 15:17
  • Ja das was wir erstellt haben, habe es aber anders gelöst in dem ich immer das File in dem Verzeichnis lösche am Anfang von Script.

    Da das Script ja alle 5min laufen soll muss ich ja sicher sein das es immer das Richtige ist was angehöngt wird.

    Werde mich jetzt mal mit dem Cmdlet Send-MailMessage kümmern. Danke für den Link!

     

    Dienstag, 28. Mai 2013 05:37