diff --git a/ad-version/.archiv/rdp-access-mail-notification.v1.ps1 b/ad-version/.archiv/rdp-access-mail-notification.v1.ps1 new file mode 100644 index 0000000..1637b78 --- /dev/null +++ b/ad-version/.archiv/rdp-access-mail-notification.v1.ps1 @@ -0,0 +1,92 @@ +# Konfigurationsparameter +$SMTPServer = "smtp.media-techport.int" +$FromName = "Media-Techport.DE | Notification Service" +$FromEmail = "noreply@media-techport.de" +$SecurityGroupDN = "CN=GG-MailAT_RDP-Access,OU=Benachrichtigungsgruppen,OU=Benutzergruppen,DC=media-techport,DC=int" + +# Überwachung der Ereignisprotokolle +$EventLogName = "Security" +$EventID = 1149 # Event ID für Anmeldungen + +# Filter für Ereignisse +$FilterXML = @" + + + + + +"@ + +# Funktion zum Senden von E-Mails +function Send-Email { + param( + [string]$To, + [string]$Subject, + [string]$Message, + [string]$GivenName, + [string]$Surname + ) + $EmailBody = @" + + + + + + + +

Logo-Schwarz

+

Hallo $GivenName $Surname,

+

$Message

+ + +"@ + + Send-MailMessage -SmtpServer $SMTPServer -From "$FromName <$FromEmail>" -To $To -Subject $Subject -Body $EmailBody -BodyAsHtml -Encoding "UTF8" +} + +# Hauptüberwachungsschleife +$events = Get-WinEvent -LogName $EventLogName -FilterXPath $FilterXML +foreach ($event in $events) { + $eventTime = $event.TimeCreated + $clientIP = $event.Properties[18].Value # IP-Adresse des Clients + $serverIP = $env:COMPUTERNAME # IP-Adresse des Servers + $user = $event.Properties[5].Value + $domain = $event.Properties[6].Value + + $userEmails = Get-ADGroupMember -Identity $SecurityGroupDN | Where-Object { $_.objectClass -eq "user" } | ForEach-Object { + $userDetails = Get-ADUser $_.DistinguishedName -Properties GivenName, Surname, EmailAddress + $GivenName = $userDetails.GivenName + $Surname = $userDetails.Surname + $EmailAddress = $userDetails.EmailAddress + [PSCustomObject]@{ + EmailAddress = $EmailAddress + GivenName = $GivenName + Surname = $Surname + } + } + + $emailMessage = @" +Es wurde eine Anmeldung per RDP auf dem Windows Server $serverIP registriert.

+Datum: $($eventTime.ToString('dd.MM.yyyy'))
+Uhrzeit: $($eventTime.ToString('HH:mm:ss'))
+Domäne: $domain
+Benutzer: $user
+IP-Adresse des Clients: $clientIP +"@ + foreach ($userDetail in $userEmails) { + Send-Email -To $userDetail.EmailAddress -Subject "RDP-Anmeldung auf $serverIP registriert" -Message $emailMessage -GivenName $userDetail.GivenName -Surname $userDetail.Surname + } +} diff --git a/ad-version/.archiv/rdp-access-mail-notification.v2.ps1 b/ad-version/.archiv/rdp-access-mail-notification.v2.ps1 new file mode 100644 index 0000000..4fea0bc --- /dev/null +++ b/ad-version/.archiv/rdp-access-mail-notification.v2.ps1 @@ -0,0 +1,52 @@ +# Konfigurationsparameter +$SMTPServer = "smtp.media-techport.int" +$FromName = "Media-Techport.DE | Notification Service" +$FromEmail = "noreply@media-techport.de" +$SecurityGroupDN = "CN=GG-MailAT_RDP-Access,OU=Benachrichtigungsgruppen,OU=Benutzergruppen,DC=media-techport,DC=int" + +# Funktion zum Senden von E-Mails +function Send-Email { + param( + [string]$To, + [string]$Subject, + [string]$Message + ) + + Send-MailMessage -SmtpServer $SMTPServer -From "$FromName <$FromEmail>" -To $To -Subject $Subject -Body $Message -BodyAsHtml -Encoding "UTF8" +} + +# Parameter aus dem Ereignisprotokoll auslesen +$eventID = 1149 # Event ID für RDP-Anmeldungen +$eventLogName = "Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational" + +$latestEvent = Get-WinEvent -LogName $eventLogName -FilterXPath "" | Select-Object -First 1 + +if ($latestEvent) { + $xml = [xml]$latestEvent.ToXml() + + if ($xml.Event.UserData) { + $user = $xml.Event.UserData.EventXML.Param1 + $domain = $xml.Event.UserData.EventXML.Param2 + $clientIP = $xml.Event.UserData.EventXML.Param3 + + $eventTime = $latestEvent.TimeCreated + $computerName = $latestEvent.MachineName + + $userEmails = Get-ADGroupMember -Identity $SecurityGroupDN | Where-Object { $_.objectClass -eq "user" } | ForEach-Object { + Get-ADUser $_.DistinguishedName -Properties EmailAddress | Select-Object -ExpandProperty EmailAddress + } + + $emailMessage = @" +Es wurde eine Anmeldung per RDP auf dem Windows Server $computerName registriert.

+Datum: $($eventTime.ToString('dd.MM.yyyy'))
+Uhrzeit: $($eventTime.ToString('HH:mm:ss'))
+Domäne: $domain
+Benutzer: $user
+IP-Adresse des Clients: $clientIP +"@ + + foreach ($email in $userEmails) { + Send-Email -To $email -Subject "RDP-Anmeldung auf $computerName registriert" -Message $emailMessage + } + } +} diff --git a/ad-version/Mailbenachrichtigung bei RDP Anmeldung (AD Version).xml b/ad-version/Mailbenachrichtigung bei RDP Anmeldung (AD Version).xml new file mode 100644 index 0000000..3301d03 Binary files /dev/null and b/ad-version/Mailbenachrichtigung bei RDP Anmeldung (AD Version).xml differ diff --git a/ad-version/rdp-access-mail-notification.v3.ad.ps1 b/ad-version/rdp-access-mail-notification.v3.ad.ps1 new file mode 100644 index 0000000..aef9a14 --- /dev/null +++ b/ad-version/rdp-access-mail-notification.v3.ad.ps1 @@ -0,0 +1,92 @@ +# Script Name: rdp-access-mail-notification.v3.ps1 +# Beschreibung: Schickt allen Mitgliedern einer GG eine Mail, wenn sich jemand per RDP auf einem System anmeldet +# Aufruf: - +# Autor: Patrick Asmus +# Web: https://www.media-techport.de +# Git-Reposit.: https://git.media-techport.de/scriptos/private-script-collection.git +# Version: 3.1 +# Datum: 22.10.2023 +# Modifikation: Header hinzugefuegt +##################################################### + +# Konfigurationsparameter +$SMTPServer = "smtp.media-techport.int" +$FromName = "Media-Techport.DE | Notification Service" +$FromEmail = "noreply@media-techport.de" +$SecurityGroupDN = "CN=GG-MailAT_RDP-Access,OU=Benachrichtigungsgruppen,OU=Benutzergruppen,DC=media-techport,DC=int" +$LogoURL = "https://assets.media-techport.de/logos/main/LogoSchwarz.png" # URL zum Logo + +# Funktion zum Senden von E-Mails +function Send-Email { + param( + [string]$To, + [string]$Subject, + [string]$HTMLBody + ) + + $emailMessage = @" + + + + + + + $HTMLBody + + +"@ + + Send-MailMessage -SmtpServer $SMTPServer -From "$FromName <$FromEmail>" -To $To -Subject $Subject -Body $emailMessage -BodyAsHtml -Encoding "UTF8" +} + +# Parameter aus dem Ereignisprotokoll auslesen +$eventID = 1149 # Event ID für RDP-Anmeldungen +$eventLogName = "Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational" + +$latestEvent = Get-WinEvent -LogName $eventLogName -FilterXPath "" | Select-Object -First 1 + +if ($latestEvent) { + $xml = [xml]$latestEvent.ToXml() + + if ($xml.Event.UserData) { + $user = $xml.Event.UserData.EventXML.Param1 + $domain = $xml.Event.UserData.EventXML.Param2 + $clientIP = $xml.Event.UserData.EventXML.Param3 + + $eventTime = $latestEvent.TimeCreated + $computerName = $latestEvent.MachineName + + $userEmails = Get-ADGroupMember -Identity $SecurityGroupDN | Where-Object { $_.objectClass -eq "user" } | ForEach-Object { + $userDetails = Get-ADUser $_.DistinguishedName -Properties GivenName, Surname, EmailAddress + $GivenName = $userDetails.GivenName + $Surname = $userDetails.Surname + $EmailAddress = $userDetails.EmailAddress + [PSCustomObject]@{ + EmailAddress = $EmailAddress + GivenName = $GivenName + Surname = $Surname + } + } + + foreach ($userDetails in $userEmails) { + $GivenName = $userDetails.GivenName + $Surname = $userDetails.Surname + $EmailAddress = $userDetails.EmailAddress + + $HTMLBody = @" + + + + + +

+

Hallo $GivenName $Surname,

+

Es wurde eine Anmeldung per RDP auf der Windows Maschine $computerName registriert.

Datum: $($eventTime.ToString('dd.MM.yyyy'))
Uhrzeit: $($eventTime.ToString('HH:mm:ss'))
Domäne: $domain
Benutzer: $user
IP-Adresse des Clients: $clientIP

+ + +"@ + + Send-Email -To $EmailAddress -Subject "RDP-Anmeldung auf $computerName registriert" -HTMLBody $HTMLBody + } + } +} diff --git a/local-version/Mailbenachrichtigung bei RDP Anmeldung (Local Version).xml b/local-version/Mailbenachrichtigung bei RDP Anmeldung (Local Version).xml new file mode 100644 index 0000000..671034c Binary files /dev/null and b/local-version/Mailbenachrichtigung bei RDP Anmeldung (Local Version).xml differ diff --git a/local-version/rdp-access-mail-notification.v3.local.ps1 b/local-version/rdp-access-mail-notification.v3.local.ps1 new file mode 100644 index 0000000..bdfd3fe --- /dev/null +++ b/local-version/rdp-access-mail-notification.v3.local.ps1 @@ -0,0 +1,63 @@ +# Konfigurationsparameter +$SMTPServer = "smtp.media-techport.int" +$FromName = "Media-Techport.DE | Notification Service" +$FromEmail = "noreply@media-techport.de" +$LogoURL = "https://assets.media-techport.de/logos/main/LogoSchwarz.png" # URL zum Logo +$ManualRecipient = "system@media-techport.de" # Manuell festgelegter E-Mail-Empfänger + +# Funktion zum Senden von E-Mails +function Send-Email { + param( + [string]$To, + [string]$Subject, + [string]$HTMLBody + ) + + $emailMessage = @" + + + + + + + $HTMLBody + + +"@ + + Send-MailMessage -SmtpServer $SMTPServer -From "$FromName <$FromEmail>" -To $To -Subject $Subject -Body $emailMessage -BodyAsHtml -Encoding "UTF8" +} + +# Parameter aus dem Ereignisprotokoll auslesen +$eventID = 1149 # Event ID für RDP-Anmeldungen +$eventLogName = "Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational" + +$latestEvent = Get-WinEvent -LogName $eventLogName -FilterXPath "" | Select-Object -First 1 + +if ($latestEvent) { + $xml = [xml]$latestEvent.ToXml() + + if ($xml.Event.UserData) { + $user = $xml.Event.UserData.EventXML.Param1 + $domain = $xml.Event.UserData.EventXML.Param2 + $clientIP = $xml.Event.UserData.EventXML.Param3 + + $eventTime = $latestEvent.TimeCreated + $computerName = $latestEvent.MachineName + + $HTMLBody = @" + + + + + +

+

Hallo Patrick Asmus,

+

Es wurde eine Anmeldung per RDP auf der Windows Maschine $computerName registriert.

Datum: $($eventTime.ToString('dd.MM.yyyy'))
Uhrzeit: $($eventTime.ToString('HH:mm:ss'))
Domäne: $domain
Benutzer: $user
IP-Adresse des Clients: $clientIP

+ + +"@ + + Send-Email -To $ManualRecipient -Subject "RDP-Anmeldung auf $computerName registriert" -HTMLBody $HTMLBody + } +}