Benutzer mit den meisten Antworten
Logfile erstellen und per Mail in Powershell versenden

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!
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.htmSchau dir mal das Cmdlet Send-MailMessage und die Beispiele darin an:
http://www.colorconsole.de/PS_Windows/de/Send-MailMessage.htmJedes 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!
- Bearbeitet Peter Kriegel Montag, 27. Mai 2013 15:20
- Als Antwort vorgeschlagen Malte Brodersen Montag, 27. Mai 2013 16:42
- Als Antwort markiert Alex Pitulice Donnerstag, 30. Mai 2013 06:44
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! -
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
-
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.htmSchau dir mal das Cmdlet Send-MailMessage und die Beispiele darin an:
http://www.colorconsole.de/PS_Windows/de/Send-MailMessage.htmJedes 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!
- Bearbeitet Peter Kriegel Montag, 27. Mai 2013 15:20
- Als Antwort vorgeschlagen Malte Brodersen Montag, 27. Mai 2013 16:42
- Als Antwort markiert Alex Pitulice Donnerstag, 30. Mai 2013 06:44
-
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!