Batch Code Variablen Problem mit Mail
Guten Tag,
ich habe Batch Datei, die für jeden OWNER eine eigene .txt Datei erstellt, in der alle Gruppen von denen er der Owner ist auflistet, zusätzlich mit allen dazugehörigen Gruppenmitgliedern.
Nun mein Problem. Ich muss die Batch so ändern, dass, nachdem man sie ausführt, an jeden Owner eine Mail gesendet wird mit der betreffenden .txt Datei.
Bsp:
OwnerMüller.txt
OwnerMeier.txt
Die Batch soll per Mail die Datei "OwnerMüller.txt" an (z.B.) H.Müller@betrieb.de und die Datei "OwnerMeier.txt" and (z.B.) T.Meier@betrieb.de senden.
Mein bisheriger Code der Batch Datei sieht wie folgt aus:
Nun müsste ich doch eigtl mit mailto.exe in jedem Verlauf meiner Schleife mit der Owner Variablen eine Mail an ihn senden können. Das würde in etwa so aussehen, aber ich weiß nicht genau wie ich die Mail Adresse konfigurieren kann, da mir die %Owner% (Variable) in anderer Schreibweise als unsere Emailadressen angezeigt wird. Statt "Vorname.Nachname@betrieb.de" gibt Owner "Nachname,Vorname" aus
Geht es vlt mit "dsget user -email" die Email des %user% zu ermitteln und in eine neue variable zu speichern, die man dann bei mailto verwenden könnte statt einer email adresse?? falls ja, wie?
Grüße narthan
ich habe Batch Datei, die für jeden OWNER eine eigene .txt Datei erstellt, in der alle Gruppen von denen er der Owner ist auflistet, zusätzlich mit allen dazugehörigen Gruppenmitgliedern.
Nun mein Problem. Ich muss die Batch so ändern, dass, nachdem man sie ausführt, an jeden Owner eine Mail gesendet wird mit der betreffenden .txt Datei.
Bsp:
OwnerMüller.txt
OwnerMeier.txt
Die Batch soll per Mail die Datei "OwnerMüller.txt" an (z.B.) H.Müller@betrieb.de und die Datei "OwnerMeier.txt" and (z.B.) T.Meier@betrieb.de senden.
Mein bisheriger Code der Batch Datei sieht wie folgt aus:
::Gruppen ermitteln und einzeln im Unterprogramm ":ProcessGroup" weiterverarbeiten
for /f "delims=" %%a in ('dsquery group "Pfad" -limit 999') do call :ProcessGroup %%a
:: Batch hier beenden
goto :eof
:ProcessGroup
:: Gruppe steht in %1
:: Owner auslesen (steht nach erstem ":" und " " und kann Leerzeichen enthalten)
set "Owner="
for /f "tokens=1* delims=: " %%i in ('dsget group %1 -desc ^| findstr "Owner"') do set "Owner=%%j"
:: Gruppen ohne Owner werden in der Datei "Gruppen_ohne_Owner.txt" gespeichert
if not defined Owner echo %1 - kein Owner >> Gruppen_ohne_Owner.txt & goto :eof
:: Dateinamen (ohne Leerzeichen + ".txt") erstellen
set "File=%Owner: =%.txt"
:: Gruppennamen ermitteln (steht nach "CN" und "=" und vor ",")
for /f "tokens=2 delims==," %%i in (%1) do set "Group=%%i"
:: Gruppeninfo in Datei schreiben
setlocal enabledelayedexpansion
:: Owner nur beim Erstellen der Datei eintragen
if not exist "%File%" >>"%File%" echo Owner: %Owner%
>>"%File%" echo Gruppe %Group%:
endlocal
:: Gruppenmitglieder ermitteln und eintragen
for /f "tokens=2 delims==\" %%i in ('dsget group %1 -members') do >>"%File%" echo - %%i
:: Leerzeile eintragen
>>"%File%" echo(
:: Rücksprung in das Hauptprogramm
goto :eof
Nun müsste ich doch eigtl mit mailto.exe in jedem Verlauf meiner Schleife mit der Owner Variablen eine Mail an ihn senden können. Das würde in etwa so aussehen, aber ich weiß nicht genau wie ich die Mail Adresse konfigurieren kann, da mir die %Owner% (Variable) in anderer Schreibweise als unsere Emailadressen angezeigt wird. Statt "Vorname.Nachname@betrieb.de" gibt Owner "Nachname,Vorname" aus
:: mailto // -t = Empfänger der Mail // -a = Attachement // -sub = Betreff
mailto.exe -d "domain" -smtp "ip-adresse" -t vorname.nachname@betrieb.de -t -a "Anhang-Datei" -sub "Thema"
Geht es vlt mit "dsget user -email" die Email des %user% zu ermitteln und in eine neue variable zu speichern, die man dann bei mailto verwenden könnte statt einer email adresse?? falls ja, wie?
Grüße narthan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 203478
Url: https://administrator.de/contentid/203478
Ausgedruckt am: 22.11.2024 um 05:11 Uhr
5 Kommentare
Neuester Kommentar