Powershell Befehle aus Batch-Datei falsch überetzt?
Hallo zusammen,
Mein Ziel ist folgendes:
Eine batch Datei soll als erstes die Statuseinträge in eine Datei schreiben. - (Zeile 1-3, dies funktioniert soweit.)
Danach soll mit der Powershell eine Mail versendet werden, deren Inhalt genau aus dem Inhalt der obigen Datei ist ( kein Anhang !).
Soweit nicht weiter Problematisch allerdings soll :
1.) kein zusätzliches Programm installiert werden ( um die Mail beispielsweise direkt aus der Batch zu senden)
2.) kein PS Script erstellt und zum laufen gebracht werden (wäre das einfachste, ist aber nicht erlaubt).
Nun zu meinem Problem:
direkt in der Powershell ausgeführt passiert ganz genau das was passieren soll, alles funktioniert bestens.
Starte ich jedoch die Batch funkioniert die Variable nichtmehr.
Habs auch ohne Pipe versucht, allerdings blieb auch hier der Erfolg aus.
Hier ein kleiner Einblick
Grüße
Mein Ziel ist folgendes:
Eine batch Datei soll als erstes die Statuseinträge in eine Datei schreiben. - (Zeile 1-3, dies funktioniert soweit.)
Danach soll mit der Powershell eine Mail versendet werden, deren Inhalt genau aus dem Inhalt der obigen Datei ist ( kein Anhang !).
Soweit nicht weiter Problematisch allerdings soll :
1.) kein zusätzliches Programm installiert werden ( um die Mail beispielsweise direkt aus der Batch zu senden)
2.) kein PS Script erstellt und zum laufen gebracht werden (wäre das einfachste, ist aber nicht erlaubt).
Nun zu meinem Problem:
direkt in der Powershell ausgeführt passiert ganz genau das was passieren soll, alles funktioniert bestens.
Starte ich jedoch die Batch funkioniert die Variable nichtmehr.
Habs auch ohne Pipe versucht, allerdings blieb auch hier der Erfolg aus.
Hier ein kleiner Einblick
* dfsrdiag replicationstate /member:xxx0 > mail.txt
* dfsrdiag backlog /xxxx0 /rmem:xxx0 /xxxl\gexxx\AS14xxx /rfname:AS14xxx >> mail.txt
* dfsrdiag backlog /xxx0 /rmem:xxx0 /xxx\gexxx\AS14xxx /rfname:AS14xxx >> mail.txt
* dfsrdiag replicationstate /member:xxx0 >> mail.txt
* powershell.exe -command [string]$dat= "${c:\mail.txt}" | send-mailmessage -from 'administrator@xxx.de' -to 'yyyy@xxx.de' -Body $dat -SMTPServer 128.x.x.x -Subject 'Replikationsstatus'
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 304436
Url: https://administrator.de/contentid/304436
Ausgedruckt am: 12.11.2024 um 22:11 Uhr
2 Kommentare
Neuester Kommentar
Klar, dir fehlen ja auch die Anführungszeichen die das gesamte Kommando umschließen damit spezielle Zeichen nicht von der Batch interpretiert werden.
powershell.exe -Executionpolicy ByPass -command "send-mailmessage -from 'administrator@xxx.de' -to 'yyyy@xxx.de' -Body (gc 'c:\mail.txt' | out-string) -SMTPServer 128.x.x.x -Subject 'Replikationsstatus'"