tranministrator
Goto Top

Power Shell 2.0 für Windows XP + Server 2003 automatisccher Mail Versand

Hallo liebe Community!

Aus gegebenem Anlass habe ich mich ein wenig mit automatischen Mailversand von Protokollen etc. beschäftigt. Für Windows 7 oder höher konnte ich mir schon etwas basteln:
1.
#in Powershell eingeben: (Get-Credential).password | ConvertFrom-SecureString > V:\SVEN\BATCH\password.txt
2.
$SMTPServer = "mail.gmx.net"  
#$password = ConvertTo-SecureString "testtest" -AsPlainText -Force 
$pw = Get-Content .\SVEN\BATCH\password.txt | ConvertTo-SecureString
$cred = New-Object System.Management.Automation.PSCredential "Benutzer", $pw  
$From = "Absender"  
$To = 'Empfänger'  
$Subject = "testergutenacht"  
$Body = @"  
Nachricht
Nachricht
"@  
$Attachments = "V:\mail.txt"  
#################################################################


Send-MailMessage -To $To -From $From -Subject $Subject -Body $Body -SmtpServer $SMTPServer -Credential $cred -encoding ([System.Text.Encoding]::UTF8) -Attachments $Attachments -UseSsl -Port 587

Doch wie sieht es denn mit Power Shell 2.0 aus? Ich finde da keinen Weg das Passwort zu verschlüsseln damit es nicht missbraucht wird.

Habt ihr da ein Tool welches das kann? Oder gibt es gar auf Power Shell 2.0 Ebene eine Lösung?

Danke fürs lesen und freue mich schon auf eure Vorschläge.

Vielen Dank und beste Grüße an die Adminwelt!
Kommentar vom Moderator Dani am 16.08.2014 um 19:40:43 Uhr
Formatierungshilfen hinzugefügt.

Content-ID: 246680

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

Ausgedruckt am: 26.11.2024 um 10:11 Uhr

colinardo
colinardo 16.08.2014 aktualisiert um 20:40:26 Uhr
Goto Top
Moin,
du kannst das Passwort als verschlüsselten SecureString als Plaintext auf der Maschine generieren die das Script nutzen soll:
http://gallery.technet.microsoft.com/scriptcenter/Encrypt-Password-and- ...
Dieser String lässt sich dann nur auf der selben Maschine und dem Benutzeraccount nutzen der den String generiert hat.

Grüße Uwe
Tranministrator
Tranministrator 16.08.2014 um 19:22:15 Uhr
Goto Top
Moin Uwe,

sowie ich den Link gelesen habe (korrigier mich bitte wenn ich falsch liege) wurde das ja in meinem Script ähnlich realisiert.

Außerdem ist es wohl nur für Windows 2003, welcher in der Unterzahl ist, für Windows XP ist ist es aber nicht geeignet laut Link.

Viele Grüße

Robert
colinardo
colinardo 16.08.2014 um 19:43:20 Uhr
Goto Top
ja, sorry hatte das wegen fehlender Codeformatierung nicht bemerkt.
Aber wer verwendet denn heut noch XP in Kombination mit Powershell ? Zeit für den Umstieg...
Tranministrator
Tranministrator 16.08.2014 um 19:53:49 Uhr
Goto Top
Leider noch einige unserer Kunden, so 5 bis 8 % die noch "nicht bereit" sind umzusteigen und da habe ich gedacht, dass es da auch eine Lösung geben muss face-wink
colinardo
colinardo 16.08.2014 aktualisiert um 21:06:34 Uhr
Goto Top
Zitat von @Tranministrator:
Leider noch einige unserer Kunden, so 5 bis 8 % die noch "nicht bereit" sind umzusteigen und da habe ich gedacht, dass
es da auch eine Lösung geben muss face-wink
Die Seite sagt nicht das es mit XP nicht möglich wäre, der Autor hat es vermutlich nur nicht mit XP testen können ...

Zitat:
<<This script is tested on these platforms by the author. It is likely to work on other platforms as well. If you try it and find that it works on another platform, please add a note to the script discussion to let others know.>>

Also ich habe das hier gerade mal mit XP und Powershell 2.0 mit Net Framework 2.0 getestet, geht hier einwandfrei.
back-to-topDemo mit Ver- und Entschlüsselung via Securestring (Getestet auf Windows XP SP3 mit Powershell 2.0 und .NET Framework 2.0)
$password = read-host -prompt "Passwort eingeben"   
# Password verschlüsselt in einer Datei speichern
$secure = ConvertTo-SecureString $password -force -asPlainText | ConvertFrom-SecureString | out-file .\securepassword.txt
write-host "Passwort wurde in die Datei 'securepassword.txt' übertragen"  
# Passwort aus dem Inhalt der Datei entschlüsseln
$decrypted = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR((gc ".\securepassword.txt"| ConvertTo-SecureString)))  
write-host "Decrypte das Password aus dem Inhalt der Datei ... das Passwort lautet: '$decrypted'"  

Wichtig ist wie erwähnt, das der Secure-String nur auf dem selben Rechner mit dem User-Account verwendet werden kann, der auch den SecureString erstellt hat!

D.h. also das deine Scripte mit den Rechten dieses Useraccount's gestartet werden müssten, damit der SecureString funktioniert.
jsysde
jsysde 16.08.2014 um 20:24:56 Uhr
Goto Top
N'Abend.
Zitat von @Tranministrator:
[...]und da habe ich gedacht, dass es da auch eine Lösung geben muss face-wink

Wenn du dich von Powershell lösen kannst: Blat. face-wink

Cheers,
jsysde
Tranministrator
Tranministrator 20.08.2014 um 20:09:09 Uhr
Goto Top
Guten Abend,

ich wünscht ich könnte noch die alte Blat nutzen, das war wesentlich einfacher. Da wir jetzt aber einen neuen SMTP verwenden wollen wir das Kennwort nicht einfach im Klartext speichern.

Mfg

Robert