83 lines
3.0 KiB
PowerShell
83 lines
3.0 KiB
PowerShell
# --- Modul-Check ---
|
|
if (!(Get-Module -ListAvailable ActiveDirectory)) {
|
|
Write-Error "Das Active Directory Modul ist nicht installiert. Bitte RSAT installieren."
|
|
return
|
|
}
|
|
|
|
# --- Konfiguration ---
|
|
$csvPath = "C:\Temp\datei2.csv" # Pfad prüfen
|
|
$PSEmailServer = "smtp.int.n-ergie"
|
|
$absender = "alin.sennewald@n-ergie.de"
|
|
$betreff = "WICHTIG: Prüfung IT-Services (Abschaltung H-Laufwerk 2026)"
|
|
|
|
# CSV importieren (Spalte 1: User, Spalte 2: Anwendungen)
|
|
$daten = Import-Csv -Path $csvPath -Delimiter ","
|
|
|
|
foreach ($zeile in $daten) {
|
|
$samAccountName = $zeile.User.Trim()
|
|
$anwendungenRaw = $zeile.Anwendungen
|
|
|
|
try {
|
|
# E-Mail-Adresse aus dem AD abrufen
|
|
Write-Host "Suche Mailadresse für $samAccountName..." -ForegroundColor Yellow
|
|
$adUser = Get-ADUser -Identity $samAccountName -Properties EmailAddress, extensionAttribute3
|
|
$empfaenger = $adUser.EmailAddress
|
|
$anrede = $adUser.extensionAttribute3
|
|
$nachname = $adUser.Surname
|
|
|
|
|
|
# Adjektivattribut vor Herr / Frau bestimmen und in Variable schreiben
|
|
if ($anrede -eq "Herr") {
|
|
$vanrede = "geehrter"
|
|
}
|
|
elseif ($anrede -eq "Frau") {
|
|
$vanrede = "geehrte"
|
|
}
|
|
else {
|
|
# Fallback, falls das Geschlecht unbekannt ist
|
|
$vanrede = "geehrte/r"
|
|
}
|
|
|
|
|
|
if (-not $empfaenger) {
|
|
Write-Warning "Keine E-Mail-Adresse für User '$samAccountName' im AD hinterlegt. Zeile wird übersprungen."
|
|
continue
|
|
}
|
|
|
|
# HTML-Liste aus den Anwendungen bauen
|
|
$anwendungenHtml = "<ul>"
|
|
$anwendungenRaw.Split(';') | ForEach-Object {
|
|
$item = $_.Trim()
|
|
if ($item) { $anwendungenHtml += "<li>$item</li>" }
|
|
}
|
|
$anwendungenHtml += "</ul>"
|
|
|
|
# HTML-Body
|
|
$htmlBody = @"
|
|
<html>
|
|
<body style="font-family: Calibri, Arial, sans-serif;">
|
|
<p>Sehr $vanrede $anrede $nachname,</p>
|
|
<p>im IT-Servicekatalog (Stand Q1 2026) sind Sie als serviceverantwortliche Person für folgende(n) Service(s) hinterlegt:</p>
|
|
<div style="background-color: #f4f4f4; padding: 10px; border-left: 4px solid #005bb7;">
|
|
$anwendungenHtml
|
|
</div>
|
|
<p>Da das <b>H-Laufwerk bis Ende Q4 2026 abgeschaltet wird</b>, prüfen wir derzeit, ob der oben genannte Service auf das User-Home-Laufwerk angewiesen ist.</p>
|
|
<p>Sollte der Service das H-Laufwerk benötigen, bitten wir um Rückmeldung bis zum <b>31.03.2026</b>.</p>
|
|
<p>Mit freundlichen Grüßen<br>Ihr IT-Service</p>
|
|
</body>
|
|
</html>
|
|
"@
|
|
|
|
# Versand
|
|
Write-Host "Sende an $empfaenger ($samAccountName)..." -ForegroundColor Green
|
|
Send-MailMessage -To $empfaenger `
|
|
-From $absender `
|
|
-Subject $betreff `
|
|
-Body $htmlBody `
|
|
-BodyAsHtml `
|
|
-Encoding UTF8
|
|
|
|
} catch {
|
|
Write-Warning "Fehler bei User '$samAccountName': $($_.Exception.Message)"
|
|
}
|
|
} |