Powershell Skript für Abwesendheit
Hallo,
ich möchte folgendes realisieren,
ein Abwesendheitsskript mit abfrage, zweck ist, hier gehen Leute in Urlaub vergessen Abwesend zu stellen und EMAILS werden nicht verarbeitet!
Oder wenn die Kollegen krank sind, dass die EMAIL einfach weitergeleitet werden
Ich habe schon mal angefangen und bin dann auf dem Stand geblieben!
$EUser = Read-Host -Prompt "Bitte geben Sie das Kürzel des Benutzers ein!"
Get-MailboxAutoReplyConfiguration $EUser
$Auswahl= Read-Host -Prompt "Sollte bei AutoReplyState ein Disabled stehen und der Kollege ist Krank oder im Urlaub, dann mit 1 =ja weiter sonst 2=nein oder Kellege wieder da mit 3"
if($Auswahl -eq '1')
{
Set-MailboxAutoReplyConfiguration -Identity $EUser -AutoReplyState Scheduled -InternalMessage „Hallo, ich bin derzeit nicht im Büro.“ -ExternalMessage „<html><body>Sehr geehrte Damen und Herren,<br><br>leider bin ich momentan nicht im Büro zu erreichen. In dringenden Fällen wenden Sie sich bitte an unsere Zentrale. Diese erreichen Sie unter der Rufnummer 0421/57290-0.<br><br>Mit freundlichen Grüßen<br><br>Beate Beispiel</body></html>“ -StartTime „10/11/2018 08:00:00“ -EndTime „11/12/2018 17:00:00“ -ExternalAudience All
$mailbox = $EUser
#$forward = $null;
$forward = "test@test.info";
Set-Mailbox $mailbox -ForwardingAddress $forward
Set-Mailbox $mailbox -ForwardingSmtpAddress $forward
Get-Mailbox $mailbox | FL DeliverToMailboxAndForward,ForwardingAddress,ForwardingSmtpAddress
}
elseif($Auswahl-eq '2')
{
exit
}
elseif ($Auswahl -eq '3')
{
Set-MailboxAutoReplyConfiguration -Identity $EUser -AutoReplyState Disabled
$mailbox = $EUser
$forward = $null;
#$forward = "test@test.info";
Set-Mailbox $mailbox -ForwardingAddress $forward
Set-Mailbox $mailbox -ForwardingSmtpAddress $forward
Get-Mailbox $mailbox | FL DeliverToMailboxAndForward,ForwardingAddress,ForwardingSmtpAddress
}
else
{
exit
}
Meine Probleme sind folgende!
Ich kann das Startdatum und das Enddatum nicht einlesen, nicht über variablen und ist der Status Abwesend gesetzt geht auch die Nachricht nicht raus!
Verbindung mit Get-PSSession gelingt mir noch nicht!
Was ich mir wünsche und wo ich nicht weiter weiß, ob das geht oder nicht!
Erstens:
Einlesen der Startdatum und Enddatum mit Zeit von Tastatur
einlesen einer Textdatei für Internal Message und External Message
so das sind die bescheidenen Wünsche, was iwann dazu kommen soll, ist aus unserem CMS - System einstellen der Urlaubstage, aber das ist noch zukunfts Musik!
Als Server liegt hier ein 2012r2 mit Exchange 13!
ich möchte folgendes realisieren,
ein Abwesendheitsskript mit abfrage, zweck ist, hier gehen Leute in Urlaub vergessen Abwesend zu stellen und EMAILS werden nicht verarbeitet!
Oder wenn die Kollegen krank sind, dass die EMAIL einfach weitergeleitet werden
Ich habe schon mal angefangen und bin dann auf dem Stand geblieben!
$EUser = Read-Host -Prompt "Bitte geben Sie das Kürzel des Benutzers ein!"
Get-MailboxAutoReplyConfiguration $EUser
$Auswahl= Read-Host -Prompt "Sollte bei AutoReplyState ein Disabled stehen und der Kollege ist Krank oder im Urlaub, dann mit 1 =ja weiter sonst 2=nein oder Kellege wieder da mit 3"
if($Auswahl -eq '1')
{
Set-MailboxAutoReplyConfiguration -Identity $EUser -AutoReplyState Scheduled -InternalMessage „Hallo, ich bin derzeit nicht im Büro.“ -ExternalMessage „<html><body>Sehr geehrte Damen und Herren,<br><br>leider bin ich momentan nicht im Büro zu erreichen. In dringenden Fällen wenden Sie sich bitte an unsere Zentrale. Diese erreichen Sie unter der Rufnummer 0421/57290-0.<br><br>Mit freundlichen Grüßen<br><br>Beate Beispiel</body></html>“ -StartTime „10/11/2018 08:00:00“ -EndTime „11/12/2018 17:00:00“ -ExternalAudience All
$mailbox = $EUser
#$forward = $null;
$forward = "test@test.info";
Set-Mailbox $mailbox -ForwardingAddress $forward
Set-Mailbox $mailbox -ForwardingSmtpAddress $forward
Get-Mailbox $mailbox | FL DeliverToMailboxAndForward,ForwardingAddress,ForwardingSmtpAddress
}
elseif($Auswahl-eq '2')
{
exit
}
elseif ($Auswahl -eq '3')
{
Set-MailboxAutoReplyConfiguration -Identity $EUser -AutoReplyState Disabled
$mailbox = $EUser
$forward = $null;
#$forward = "test@test.info";
Set-Mailbox $mailbox -ForwardingAddress $forward
Set-Mailbox $mailbox -ForwardingSmtpAddress $forward
Get-Mailbox $mailbox | FL DeliverToMailboxAndForward,ForwardingAddress,ForwardingSmtpAddress
}
else
{
exit
}
Meine Probleme sind folgende!
Ich kann das Startdatum und das Enddatum nicht einlesen, nicht über variablen und ist der Status Abwesend gesetzt geht auch die Nachricht nicht raus!
Verbindung mit Get-PSSession gelingt mir noch nicht!
Was ich mir wünsche und wo ich nicht weiter weiß, ob das geht oder nicht!
Erstens:
Einlesen der Startdatum und Enddatum mit Zeit von Tastatur
einlesen einer Textdatei für Internal Message und External Message
so das sind die bescheidenen Wünsche, was iwann dazu kommen soll, ist aus unserem CMS - System einstellen der Urlaubstage, aber das ist noch zukunfts Musik!
Als Server liegt hier ein 2012r2 mit Exchange 13!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 389524
Url: https://administrator.de/forum/powershell-skript-fuer-abwesendheit-389524.html
Ausgedruckt am: 05.04.2025 um 15:04 Uhr
9 Kommentare
Neuester Kommentar
Schritt 1: Weniger Kaffee !!! Das dürfte die Anzahl der Ausrufezeichen deutlich reduzieren !!!
Einlesen vom Datum interaktiv:
Damit sollte das Format stimmen und die Exchange Konsole es akzeptieren
Einlesen der Textdatei:
Somit kannst du in die text.txt ganz normal alles mit Zeilenumbrüchen ganz normal schreiben, das -join '<br>' klebt es zusammen und setze autmatisch die HTML Tags
NOCH EINEN RUHIGEN TAG DANN SONST !!!
Einlesen vom Datum interaktiv:
$Datum = Read-Host "bitte Datum eingeben" | Get-Date -Format "MM\/dd\/yyyy HH:mm:ss"
Einlesen der Textdatei:
$Text = (Get-Content ".\text.txt") -join '<br>'
NOCH EINEN RUHIGEN TAG DANN SONST !!!
Bevor zu die Welt zusammenskriptest, probiert doch mal ob es als einzeiler funktioniert:
https://docs.microsoft.com/de-de/exchange/recipients/user-mailboxes/emai ...
https://docs.microsoft.com/de-de/exchange/recipients/user-mailboxes/emai ...
Set-Mailbox -Identity "Ken Sanchez" -ForwardingSMTPAddress "pilarp@contoso.com"
Hier noch ein paar Links mit auf dem Weg:
Zu Exchange Konsole verbinden:
https://docs.microsoft.com/de-de/powershell/exchange/exchange-server/con ...
und Konzept um "der Personalabteilung zugang zu geben" : JEA
https://docs.microsoft.com/de-de/powershell/jea/overview
Aber das sind recht komplexe Themen, vielleicht versuchst du dich zuerst eher an den Grundladen von PS Remoting etc.
Den Thread kannst ja als gelöst markieren
Zu Exchange Konsole verbinden:
https://docs.microsoft.com/de-de/powershell/exchange/exchange-server/con ...
und Konzept um "der Personalabteilung zugang zu geben" : JEA
https://docs.microsoft.com/de-de/powershell/jea/overview
Aber das sind recht komplexe Themen, vielleicht versuchst du dich zuerst eher an den Grundladen von PS Remoting etc.
Den Thread kannst ja als gelöst markieren