shannra666
Goto Top

Powershell soll eine CMD.Datei starten

Hallo zusammen.,

und wieder eine Frage, welche mir das WWW leider nicht beantworten kann.

Kann ich aus der Powershell ein CMD Script starten? Und wenn ja wie ?

Ich möchte am Ende des Powershellscriptes eine Mail per Blat versenden. Das ist bereits alles mit Blat konfiguriert per CMD. Kann mir wer helfen, bitte?

Content-ID: 188072

Url: https://administrator.de/contentid/188072

Ausgedruckt am: 16.11.2024 um 17:11 Uhr

SlainteMhath
SlainteMhath 16.07.2012 um 10:51:03 Uhr
Goto Top
Moin,

und wieder eine Frage, welche mir das WWW leider nicht beantworten kann.
Hm? Google meint
About 1,340,000 results (0.34 seconds)

Kann ich aus der Powershell ein CMD Script starten? Und wenn ja wie ?
Wenns nichts besonderes können soll, einfach nur Aufrufen.

Ich möchte am Ende des Powershellscriptes eine Mail per Blat versenden. Das ist bereits alles mit Blat konfiguriert per CMD.
Warum nimmst Du nicht "Send-MailMessage"?

lg,
Slainte
shannra666
shannra666 16.07.2012 um 13:36:42 Uhr
Goto Top
Hallo,

sorry ich habe mich falsch ausgedrückt. Die Antworten die ich gefunden habe, konnten mir nicht weiterhelfen, wirklich. Wie gesagt stelle mich vieleicht gerade etwas zu dumm an.

Einfach nur aufrufen....
Gebe ich nur den Pfad an, zu der Bat so kommt der Fehler das er das CMDlet nicht finden kann.

Ich nutze nicht Sen-Mailmessage, da ich im Body eine Liste übergeben möchte (vorher aus dem Windows Event Log generiert). Aber im Body kann ich nur einen String wiedergeben.

Gibts noch Hoffnung für mich ??
SlainteMhath
SlainteMhath 16.07.2012 um 13:51:20 Uhr
Goto Top
Zitat von @shannra666:
Gebe ich nur den Pfad an, zu der Bat so kommt der Fehler das er das CMDlet nicht finden kann.
Versteh ich nicht ganz. Wenn Du "C:\PFAD\ZUR\CMD\DATEI.CMD" schreibst, sollte er die CMD doch ausführen, oder?

Ich nutze nicht Sen-Mailmessage, da ich im Body eine Liste übergeben möchte (vorher aus dem Windows Event Log
generiert). Aber im Body kann ich nur einen String wiedergeben.
Mein Babelfisch übersetzt mir "...eine liste übergeben..." mit "...den Inhalt einer Datei als Body verwenden..."
$body= ( Get-Content c:\pfad\zur\liste.txt )
Send-MailMessage  -To ...  -from ... -smtpserver ... -subject blubb -body $body
shannra666
shannra666 16.07.2012 um 14:03:41 Uhr
Goto Top
OK, das ich den Inhalt einer Datei versenden kann wusste ich nicht. Dann habe ich die bisherigen Tuts vieleicht einfach falsch gelesen. Das werde ich gleich mal prüfen.

Die CMD startet wirklich nicht, es wird nur gesagt dass das CMDlet nicht bekannt ist. Naja wenn ich innerhalb der Powershell bleiben kann, dann ist es eh besser. Ich schau mal.
shannra666
shannra666 16.07.2012 um 14:21:44 Uhr
Goto Top
Dein Vorschlag funktioniert.

Nur eine kleine Änderung:

[String]$body= ( Get-Content c:\pfad\zur\liste.txt ) 

Hat nur einen Schönheitsfehler, die Zeilenumbrüche werden ignoriert.

Aber das bekomme ich auch noch hin, muss ich halt vorher die Ausgabe anders generierten. Mal schauen, aber danke im für die Hilfe.
SlainteMhath
SlainteMhath 16.07.2012 um 14:43:03 Uhr
Goto Top
Zitat von @shannra666:

Versuchs mal so:
$body= ( Get-Content c:\pfad\zur\liste.txt | out-string ) 
shannra666
shannra666 16.07.2012 um 15:32:50 Uhr
Goto Top
Ich danke dir. Das funktioniert. Vielen Dank.

Hatte es erst mit:

$Body | foreach { $bodyl_string += "$_`r`n" }  
versucht. Aber das war leider auch nur eine einzelne Zeile.

Vielen Dank.