peterleb
Goto Top

Mail bei Neustart WS 2016

Ich habe das Thema schon mal angefragt.
Inzwischen fand ich einen Weg über eine Batch Datei, die bei Bedarf tatsächlich eine E-Mail sendet.
Das klappt wunderbar, wenn ich die bat direkt ausführe.

leider passiert überhaupt nichts, wenn ich diese bat über die Aufgabenplanung (Trigger Systemstart) eintrage und aktiviere.
Wo sind die Stolpersteine?

Einen schönen 1. Advent allen und
gute Ideen oder Tipps.

Danke
Peter

Content-Key: 356877

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

Ausgedruckt am: 29.03.2024 um 06:03 Uhr

Mitglied: Dani
Dani 02.12.2017 um 19:16:06 Uhr
Goto Top
Guten Abend Peter,
leider passiert überhaupt nichts, wenn ich diese bat über die Aufgabenplanung (Trigger Systemstart) eintrage und aktiviere. Wo sind die Stolpersteine?
poste doch bitte Screenshots von deiner konfigurierten Aufgabe. Somit ist eine Fehlersuche einfacher als zu raten.


Gruß,
Dani
Mitglied: PeterleB
PeterleB 02.12.2017 um 23:19:30 Uhr
Goto Top
image01
image02
image03
image04
image05
image06

Und wenn ich rechts auf Ausführen klicke, passiert nichts Spürbares.
image07

Hier also die Screenshots.
Gruß
Peter
Mitglied: BassFishFox
BassFishFox 03.12.2017 um 00:33:21 Uhr
Goto Top
Hallo,

Kann den Deine Batch bzw. das was Du in der Batch steuerst ueberhaupt ohne Beutzerkontext ausgefuehrt werden?
Der geplante Task rennt ohne Fehler durch, sprich er startet die Batch und merkt das die Batch abgearbeitet wurde? Oder steht der Status immer so auf "Wird ausgefuehrt" wie im letzten Bild.

Kannst Du bitte die Batch hier im Codeblock posten?

BFF

P.S.
CCleaner ist nen nettes Spielzeug auf nem Server. face-wink
Mitglied: PeterleB
PeterleB 03.12.2017 um 00:46:43 Uhr
Goto Top
Batch kommt noch.

Zum PS: Der ganze Server ist mein Spielzeug.
Mitglied: BassFishFox
BassFishFox 03.12.2017 aktualisiert um 01:42:10 Uhr
Goto Top
Mal so nebenbei.

Funktioniert der Task, wenn Du ihn aus der Aufgabenplanung startest?
Ist das Netzwerk schon bereit, wenn der Task ausgeloest wird?

BFF
Mitglied: PeterleB
PeterleB 03.12.2017 um 10:35:04 Uhr
Goto Top
@echo off 
goto Start 
=================================================================== 
Dieses Batchprogramm schickt ein Mail an die angegebenen Empfänger. 
Erforderlich: - c:\tools\blat.exe (http://www.blat.net) 
=================================================================== 
:Start 
set Subject=Sharkoon Reboot - Server Neustart
set Sender=sharkoon.event@busch.net 
set Receiver=xxxxxx@xxxxxx.de 
set Host=172.20.0.20
rem -port 25 
rem set User=Administrator 
rem set Password=xxxxxxx
rem set Textfile=%temp%\mail.txt
set Textfile=mail.txt 
echo Der Server wurde neu gestartet. > "%Textfile%"  
rem echo. > "%Textfile%"  
rem echo Nachricht gesendet am %date% um %time:~0,5% > "%Textfile%"  
rem !!! Das Folgende ist eine einzige Zeile!
rem c:\tools\blat.exe "%Textfile%" -server %host% -subject "%Subject%" -f %Sender% -to %Receiver% -u %User% -pw %Password%  
blat.exe "%Textfile%" -server %host% -subject "%Subject%" -f %Sender% -to %Receiver%  
rem exit
Mitglied: Penny.Cilin
Penny.Cilin 03.12.2017 um 10:48:09 Uhr
Goto Top
Guten Morgen,

was mir am 5. Screenshot auffällt, Du hast die Option "Aufgabe beenden, falls Ausführung länger als" nicht aktiviert.
Dadurch kann es sein, daß eine vorhergehende Aufgabe noch aktiv ist und den zweiten Start verhindert.

Zeige uns uns vom sechsten Screenshot den kompletten Text der Ausgabe und der Details.

Zudem sind vom zweiten und dritten Screenshot die genauen Details wichtig. Deshalb poste bitte die Screenshots der jeweiligen "Bearbeiten..." Buttons. Somit seen wir was genau eingestellt ist. - Danke

Gruss Penny
Mitglied: PeterleB
PeterleB 03.12.2017 um 12:02:01 Uhr
Goto Top
Ausgabetext 6. Screenshot:

Die Aufgabenplanung hat die Instanz "{c74c1ed2-1ea2-41e9-ae13-59f290335052}" der Aufgabe "\NeustartBenachrichtigung" für den Benutzer "SHARKOON\Administrator" erfolgreich fertig gestellt.

Details:

- System
- Provider
[ Name] Microsoft-Windows-TaskScheduler
[ Guid] {DE7B24EA-73C8-4A09-985D-5BDADCFA9017}
EventID 102
Version 0
Level 4
Task 102
Opcode 2
Keywords 0x8000000000000001
- TimeCreated
[ SystemTime] 2017-12-02T22:12:29.002347000Z
EventRecordID 1468
- Correlation
[ ActivityID] {C74C1ED2-1EA2-41E9-AE13-59F290335052}
- Execution
[ ProcessID] 1376
[ ThreadID] 2228
Channel Microsoft-Windows-TaskScheduler/Operational
Computer SHARKOON
- Security
[ UserID] S-1-5-18
- EventData
TaskName \NeustartBenachrichtigung
UserContext SHARKOON\Administrator
InstanceId {C74C1ED2-1EA2-41E9-AE13-59F290335052}


Trigger bearbeiten:

image02-1

Aktion bearbeiten:

image03-1

Danke für die Mithilfe
Mitglied: Penny.Cilin
Penny.Cilin 03.12.2017 um 12:42:11 Uhr
Goto Top
Hallo @PeterleB,

bzgl. starten von Batchdateien mit dem Aufgabenplaner gab es hier im Forum schon etliche Fragen. Nutze bitte dazu die Suchfunktion. Ich habe jetzt aktuell so etwas nicht vorliegen, meine aber, daß wie in Deinem zweiten Screenshot von 12:02 nicht funktioniert.

Gruss Penny
Mitglied: PeterleB
PeterleB 03.12.2017 um 13:12:52 Uhr
Goto Top
Hallo Penny,

hab' was gefunden:

"Für das Starten eines CMD-Batchfiles darf das Skript nicht direkt als Programm eingetragen werden. Stattdessen muss der CMD-Interpreter gestartet und ihm dann das Skript übergeben werden."

Das probiere ich jetzt.

Gruß
Peter
Mitglied: 134464
Lösung 134464 03.12.2017 aktualisiert um 14:01:34 Uhr
Goto Top
Zeile 22 verwendet keinen Pfad zur Blat.exe ...
Ohne Angabe muss das Blat-Verzeichnis in die PATH Variable hinterlegt sein, denn der aktuelle Standardpfad ist beim Ausführen nicht das des Skripts.

Zum Ausführen unter Pfad cmd.exe eintragen und unter Argumente /c "C:\Pfad\script.bat" eintragen.

Auch wenn das ein Spiel Server ist, Passwörter und vor allem das "des Administrators" platziert man nie nie nie nie niemals im Klartext in Textdateien, das ist dümmste Manier von Grundschülern!!

Würde lieber gleich Powershell zum Senden hernehmen, als diesen Blat-Mist aus den Achtzigern.
Mitglied: PeterleB
PeterleB 03.12.2017 um 14:51:57 Uhr
Goto Top
1. Habe ich nicht das Passwort "ver-ixelt"?

2. Reicht "cmd.exe" oder mit vollständigem Pfad?

3. Habe lange nach einem Script gesucht. Blat war dann der einfachste Weg.
Hast Vorschläge oder Links zu passenden PS-scripts?

Danke
Mitglied: 134464
134464 03.12.2017 aktualisiert um 14:58:33 Uhr
Goto Top
Zitat von @PeterleB:

1. Habe ich nicht das Passwort "ver-ixelt"?
??
2. Reicht "cmd.exe" oder mit vollständigem Pfad?
Ist egal, geht beides.
3. Habe lange nach einem Script gesucht. Blat war dann der einfachste Weg.
Hast Vorschläge oder Links zu passenden PS-scripts?
Skripte dazu findest du hier im Forum 10000fach.
Stichwort Send-Mailmessage
Z.B. Mit Powershell Email versenden, Gmail oder outlook.com
Mitglied: PeterleB
PeterleB 03.12.2017 um 15:02:18 Uhr
Goto Top
Danke.
Habe auch schon was gefunden. Versuche es parallel mal mit PS.
Trotzdem muß doch das auch mit der Batch funktionieren....

Grüße
Peter
Mitglied: BassFishFox
BassFishFox 03.12.2017 um 15:05:17 Uhr
Goto Top
Hallo,

Habe ich nicht das Passwort "ver-ixelt"?

Darum geht es nicht.
Gemeint ist, dass man in lokalen Scripten (Textdateien) keine administrative Passwoerter im speichert. face-smile

BFF
Mitglied: PeterleB
PeterleB 03.12.2017 um 15:13:07 Uhr
Goto Top
Sorry, da stand ich wohl auf dem Schlauch.
Mitglied: PeterleB
PeterleB 03.12.2017 um 15:58:53 Uhr
Goto Top
So, das Script steht.

#$Dateiname = "Pfad zum Dateianhang, falls Sie einen mit versenden möchten"    # z.B. c:\zipdatei.zip  
$SmtpServer = new-object system.net.mail.smtpClient
$SmtpServer.Host = "172.20.0.20"                                         
 $MailMessage = New-Object system.net.mail.mailmessage
#$Anhang = new-object Net.Mail.Attachment($Dateiname)
$MailMessage.from = "sharkoon.event@busch.net"  
$MailMessage.To.add("xxxxxxx@xxxxxx.de")  
$MailMessage.Subject = “Server-Neustart Test Mail”
$MailMessage.IsBodyHtml = $true                 # je nachdem ob Sie html ($true) oder txt ($false) Mails schicken möchten
$MailMessage.Body = "Server Neustart"  
#$MailMessage.Attachments.Add($Anhang)
$SmtpServer.Send($MailMessage)

In der Aufgabenplanung muß ich dann sicher "powershell.exe" eintragen und den Pfad zur ps1-Datai als Parameter?

Gruß
Peter
Mitglied: BassFishFox
Lösung BassFishFox 03.12.2017 um 16:08:45 Uhr
Goto Top
Jupp.

Den vollen Pfad zur powershell.exe natuerlich auch. face-wink
https://social.technet.microsoft.com/wiki/contents/articles/26747.window ...

BFF
Mitglied: PeterleB
PeterleB 03.12.2017 um 16:11:11 Uhr
Goto Top
Vielen Dank.
Mitglied: PeterleB
PeterleB 03.12.2017 um 18:18:51 Uhr
Goto Top
Hallo,

es klappt endlich!

image10

Ich kann die Aufgabe manuell auslösen - mit Erfolg.
Teste dann noch den echten Neustart.

Vielen dank allen Helfern.

Peter
Mitglied: PeterleB
PeterleB 03.12.2017 um 18:23:24 Uhr
Goto Top
Ein letzter Gruß.
So sieht's im Outlook aus:

image11

Schönen Abend noch.

Peter
Mitglied: BassFishFox
Lösung BassFishFox 03.12.2017 um 18:26:03 Uhr
Goto Top
Na denn flott den Thread als geloest markieren, bevor es in's Bett geht. face-wink

BFF
Mitglied: PeterleB
PeterleB 03.12.2017, aktualisiert am 04.12.2017 um 11:33:46 Uhr
Goto Top
Das Script ist natürlich noch ein bisschen verfeinert.
Hab' ne ganze Menge dazu gelernt (Version auslesen, Datum formatieren, Zeilenumbrüche etc.).

Peter

#$Dateiname = "Pfad zum Dateianhang, falls Sie einen mit versenden möchten"    # z.B. c:\zipdatei.zip 
$SmtpServer = new-object system.net.mail.smtpClient
$SmtpServer.Host = "172.20.0.20"                                               # FQDN des SMTP-Servers  
$MailMessage = New-Object system.net.mail.mailmessage
#$Anhang = new-object Net.Mail.Attachment($Dateiname)
$MailMessage.from = "sharkoon.event@xxxxx.net"  
$MailMessage.To.add("xxxxxxx@xxxxxxx.de")  
$MailMessage.Subject = “Server-Neustart Test Mail”
$MailMessage.IsBodyHtml = $true                 # je nachdem ob Sie html ($true) oder txt ($false) Mails schicken möchten
$AktDat = Get-Date -format d.M.yyyy 
$AktZeit = Get-Date -format HH:mm:ss
$CN = $env:computername
$OS = (Get-WmiObject win32_operatingsystem).caption
$Rel1 = (Get-WmiObject win32_operatingsystem).version
$Rel2 = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\" -Name ReleaseID).ReleaseId  
$Rel3 = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\" -Name UBR).UBR  
$MailMessage.Body = "Server $CN <br> <br> Neustart am $AktDat $AktZeit <br> <br> $OS <br> Version: $Rel1" + "." + "$Rel3 ($Rel2)"  
#$MailMessage.Attachments.Add($Anhang)
$SmtpServer.Send($MailMessage)
Mitglied: JoeyFree
JoeyFree 04.12.2017 um 11:39:09 Uhr
Goto Top
Ich würde Scripts wo sensible Daten drinnen stehen immer mit einem "Bat to Exe Converter" umwandeln.
Besser als gar nix ;)
Mitglied: 134464
134464 04.12.2017 aktualisiert um 11:45:22 Uhr
Goto Top
Zitat von @JoeyFree:

Ich würde Scripts wo sensible Daten drinnen stehen immer mit einem "Bat to Exe Converter" umwandeln.
Besser als gar nix ;)
Nie Never ever, Bullshit, Finger weg von dem Viechzeug .... Wenn man die Aufgabenplanung schon mit den richtigen Credentials starten lässt braucht es keine hinterlegten Passwörter im Skript.
Mitglied: Penny.Cilin
Penny.Cilin 04.12.2017 aktualisiert um 13:01:42 Uhr
Goto Top
Zitat von @JoeyFree:

Ich würde Scripts wo sensible Daten drinnen stehen immer mit einem "Bat to Exe Converter" umwandeln.
Besser als gar nix ;)
back-to-topFALSCH!

In Powershell kannst Du direkt verschlüsseln. Dazu können Dir die Powershellexpterten besser helfen.
Ansonsten nutze eine Suchmaschine Deiner Wahl.

Gruss Penny
Mitglied: JoeyFree
JoeyFree 04.12.2017 um 16:06:53 Uhr
Goto Top
Wo ist da der Unterschied ob ich in einem PowerShellScript die Logindaten verschlüssle oder in einer Exe verschlüssle?
Da würde ich dann eher wie bierverleih mit den richtigen Anmeldedaten arbeiten.
Mitglied: Penny.Cilin
Penny.Cilin 04.12.2017 um 16:22:11 Uhr
Goto Top
Schau Dir die Möglichkeiten der Verschlüsselung in Powershell an. Ich hierzu nicht der Powershell Experte.
Ich habe allerdings mal erklärt bekommen, daß die Verschlüsselung in Powershell recht sicher sein soll.
D.h. wenn Du Passwörter oder ähnliches in einen SecureString (?) packst, soll es sehr sicher sein.

Wie gesagt, frage hier im Forum die Powershellspezies (@Colinardo), schaue im Internet nach oder lege Dir ein Powershellbuch Deiner Wahl zu.

Gruss Penny