Skip to content

Daniels Tagesmeldungen

Kleine IT-Episoden, der Diabetes & das wahre Leben

  • Startseite
  • About me…
    • Lebenslauf
    • Weiterbildung
  • Diabetes melitus
    • Diabetes melitus – Definition/Typen
    • Diabetes melitus – Podcasts
    • Diabetes Typ-2 – Erläuterung
    • Medikament – Metformin
    • IVOM – Präzise Medikamentengabe ins Auge
      • Medikament – Eylea (Aflibercept)
      • Medikament – Lucentis (Ranibizumab )
      • Medikament – Vabysmo (Faricimab)
    • Medikament – Forxiga (Dapagliflozin)
  • Disclaimer
  • Toggle search form

Gruppenverwaltete Dienstkonten (gMSA)

Posted on 23. Mai 202521. Mai 2025 By Daniel Lensing Keine Kommentare zu Gruppenverwaltete Dienstkonten (gMSA)

In der modernen IT-Infrastruktur spielen Sicherheit und Automatisierung eine entscheidende Rolle. Eine der oft übersehenen, aber äußerst nützlichen Funktionen in Windows-Umgebungen sind gruppenverwaltete Dienstkonten (gMSA). Diese speziellen Konten bieten eine sichere und automatisierte Möglichkeit, Dienstkonten zu verwalten, ohne dass Administratoren sich um regelmäßige Kennwortänderungen kümmern müssen.

Was sind gMSA?

Gruppenverwaltete Dienstkonten (gMSA) sind eine Erweiterung der verwalteten Dienstkonten (MSA), die mit Windows Server 2008 R2 eingeführt wurden. Während ein einfaches verwaltetes Dienstkonto (sMSA) nur für einen einzelnen Server genutzt werden kann, ermöglichen gMSA die Verwendung eines Dienstkontos auf mehreren Servern innerhalb einer Domäne.

Ein gMSA bietet eine automatische Kennwortverwaltung, da das System das Kennwort regelmäßig ändert, ohne dass Administratoren eingreifen müssen. Dies erhöht die Sicherheit, da das Passwort nicht manuell gespeichert oder weitergegeben wird, und vereinfacht die Verwaltung, da ein einzelnes Dienstkonto für mehrere Systeme genutzt werden kann.

Vorteile von gMSA

Die Verwendung von gMSA bringt zahlreiche Vorteile mit sich. Besonders hervorzuheben ist die automatische Kennwortverwaltung, die durch das Active Directory gewährleistet wird. Dies reduziert das Risiko statischer Kennwörter erheblich und macht es unnötig, manuelle Änderungen durchzuführen.

Ein weiterer großer Vorteil liegt in der erhöhten Sicherheit. Da Administratoren die Kennwörter nicht verwalten müssen, entfällt die Gefahr, dass sie versehentlich weitergegeben oder kompromittiert werden. Zudem erleichtert die zentrale Verwaltung die Nutzung und Wartung von Dienstkonten in größeren IT-Umgebungen, da ein gMSA von mehreren Servern innerhalb einer Domäne verwendet werden kann.

Einschränkungen von gMSA

Trotz der zahlreichen Vorteile gibt es einige Einschränkungen, die bei der Implementierung von gMSA berücksichtigt werden müssen. Diese Konten sind nur mit Windows Server 2012 und neuer kompatibel. Unternehmen mit älteren Windows-Versionen können gMSA nicht verwenden und müssten auf alternative Lösungen zurückgreifen.

Ein wichtiger Punkt ist zudem, dass gMSA nicht für interaktive Anmeldungen genutzt werden können. Sie sind ausschließlich für Dienste und Anwendungen vorgesehen, sodass eine direkte Anmeldung an einem Server damit nicht möglich ist. Auch bei geplanten Aufgaben gibt es eine Einschränkung, denn gMSA lassen sich nicht direkt über die Windows-Oberfläche konfigurieren – dafür wird PowerShell benötigt.

Darüber hinaus benötigen gMSA eine kontinuierliche Verbindung zum Domänencontroller, um die automatischen Kennwortaktualisierungen zu erhalten. Falls ein Server über einen längeren Zeitraum offline ist, könnten Authentifizierungsprobleme auftreten. Außerdem sind diese Konten nur innerhalb einer Domäne nutzbar und können nicht über Domänengrenzen hinweg eingesetzt werden.

Eine weitere Herausforderung besteht in der Verwaltung der Berechtigungen. Jeder Server, der ein gMSA verwenden soll, muss explizit in einer Liste mit berechtigten Systemen (PrincipalsAllowedToRetrieveManagedPassword) eingetragen werden. Dies erfordert eine präzise Planung, um die Zugriffskontrolle effektiv zu verwalten. Abschließend besteht trotz der automatisierten Kennwortverwaltung weiterhin ein potenzielles Sicherheitsrisiko, falls ein Server kompromittiert wird und dadurch das Kennwort ausgelesen werden könnte.

Fazit

Gruppenverwaltete Dienstkonten (gMSA) sind eine äußerst praktische Lösung für die sichere und automatisierte Verwaltung von Dienstkonten in Windows-Umgebungen. Die automatische Kennwortverwaltung, die erhöhte Sicherheit und die vereinfachte Administration machen sie besonders geeignet für Unternehmen, die ihre IT-Infrastruktur effizienter gestalten möchten. Allerdings sollten Administratoren sich der potenziellen Einschränkungen bewusst sein und bewährte Sicherheitsmaßnahmen anwenden, um mögliche Risiken zu minimieren.

Server, Windows Server 2019, Windows Server 2022, Windows Server 2025

Podcast: OBSESSED – Döner Papers

Posted on 22. Mai 202521. Mai 2025 By Daniel Lensing Keine Kommentare zu Podcast: OBSESSED – Döner Papers

Ein jahrzehntelanges Rätsel aufdeckt

Das ikonische Döner-Logo – ein Mann mit Schnurrbart, Kochmütze und einem imposanten Dönerspieß – ist in ganz Deutschland bekannt. Es schmückt Dönerverpackungen, T-Shirts und wurde sogar für politische Kampagnen genutzt. Doch wer hat es erschaffen? Genau dieser Frage geht der Podcast „OBSESSED – Döner Papers„ des Bayrischen Rudfunks auf den Grund. Die investigative Serie taucht tief in die Geschichte dieses Symbols ein und bringt faszinierende Enthüllungen ans Licht.

Die Ursprünge des Döners in Deutschland

Bevor wir über das Logo sprechen, lohnt sich ein Blick auf die Geschichte des Döners. Ursprünglich aus der Türkei stammend, erlebte der Döner durch türkische Gastarbeiter in den 1970er Jahren seine Geburt in Deutschland. Was zunächst als einfache Imbiss-Speise begann, entwickelte sich schnell zum Fast-Food-Liebling der Nation.

Die mysteriöse Herkunft des Logos

Seit Jahrzehnten war die Herkunft des Döner-Logos ein Mysterium. Trotz intensiver Internetrecherchen gab es keine klare Antwort darauf, wer es geschaffen hatte. Der Podcast bringt schließlich die Wahrheit ans Licht: Der Düsseldorfer Grafiker Mehmet Unay entwarf das Bild 1987 für einen Flyer eines Döner-Restaurants. Was als kleine Grafik begann, fand durch massenhafte Kopien und Weiterverbreitung den Weg in die deutsche Popkultur.

Die Bedeutung des Logos in der Popkultur

Das Logo ist nicht nur ein Werbemittel – es hat Symbolcharakter.

  • Mode & Merchandise: Ob auf Hoodies oder als Sticker – das Bild hat einen festen Platz in der Popkultur.
  • Social Media & Memes: Durch seine schlichte, universelle Ästhetik eignet es sich perfekt für ironische Internet-Posts.
  • Politische & gesellschaftliche Nutzung: Es wurde mehrfach als Symbol für türkische Kultur in Deutschland verwendet und taucht auf Protesten und Veranstaltungen auf.

Ein Puzzle aus vielen kleinen Teilen

Die Suche nach der Herkunft des Logos war keine leichte Aufgabe. Die Podcast-Macher*innen durchforsteten Archive, befragten Zeitzeugen und sprachen mit Expert*innen der Designbranche. Die Geschichte zeigt, wie oft Kulturgüter entstehen, ohne dass ihre Urheber im Rampenlicht stehen. Jede Episode des Podcasts nimmt einen anderen Aspekt der Geschichte unter die Lupe.

Fazit

Wenn du dich für Popkultur, Designgeschichte und investigative Recherche interessierst, ist „OBSESSED – Döner Papers“ ein Bereicherung. Die Folgen sind unter anderem in der ARD Audiothek und bei Apple Podcast verfügbar.

Audio, Leben Beruf und Gesundheit

Wiedereintritt in die Kirche

Posted on 21. Mai 202519. Mai 2025 By Daniel Lensing Keine Kommentare zu Wiedereintritt in die Kirche

Der Austritt aus der Kirche ist eine persönliche Entscheidung, die aus verschiedenen Gründen getroffen wird. Doch manchmal verspüren Menschen den Wunsch, wieder Teil der kirchlichen Gemeinschaft zu werden. Der Wiedereintritt in die katholische oder evangelische Kirche ist möglich und oft unkomplizierter, als viele denken.

Gründe für den Wiedereintritt

Menschen entscheiden sich aus unterschiedlichen Gründen für den Wiedereintritt in die Kirche:

  • Spirituelle Rückkehr: Eine erneute Hinwendung zum Glauben und zur kirchlichen Gemeinschaft.
  • Familiäre oder soziale Gründe: Zum Beispiel die Taufe eines Kindes oder die kirchliche Hochzeit.
  • Engagement in der Gemeinde: Viele möchten aktiv am Gemeindeleben teilnehmen.
  • Seelsorgerische Unterstützung: Der Wunsch nach spiritueller Begleitung und Beratung.

Wiedereintritt in die evangelische Kirche

Der Wiedereintritt in die evangelische Kirche ist in der Regel unkompliziert und kann direkt bei der zuständigen Gemeinde erfolgen. Die wichtigsten Schritte sind:

  1. Kontaktaufnahme mit der Gemeinde
    Wende dich an die Pfarrerin oder den Pfarrer deiner Heimatgemeinde oder eine Wiedereintrittsstelle.
  2. Persönliches Gespräch
    In einem Gespräch kannst du deine Beweggründe erläutern und offene Fragen klären. Es gibt keine festen Voraussetzungen oder Prüfungen.
  3. Formale Anmeldung
    In der Regel benötigst du eine Taufbescheinigung und eine Austrittsbescheinigung. Die Gemeinde hilft dir bei der Beschaffung dieser Dokumente.
  4. Offizielle Aufnahme
    Der Wiedereintritt kann durch eine einfache Erklärung oder eine kleine Feier in der Gemeinde erfolgen.

Wiedereintritt in die katholische Kirche

Der Wiedereintritt in die katholische Kirche ist ebenfalls möglich, erfordert jedoch eine formelle Aufnahme durch die Kirche. Die Schritte sind:

  1. Kontaktaufnahme mit einem katholischen Seelsorger
    Der Wiedereintritt erfolgt nicht über eine staatliche Behörde, sondern direkt über die Kirche.
  2. Gespräch mit einem Priester
    Ein Gespräch mit einem Priester oder Seelsorger ist erforderlich, um die Beweggründe zu besprechen und den Wiedereintritt vorzubereiten.
  3. Einholung der Zustimmung des Bischofs
    Der Priester beantragt beim Bischof die Wiederaufnahme. Dafür benötigst du eine Taufbescheinigung und eine Austrittsbescheinigung.
  4. Offizielle Wiederaufnahme
    Nach der Zustimmung des Bischofs erfolgt die Wiederaufnahme durch eine feierliche Erklärung, die entweder im Pfarrbüro oder im Rahmen eines Gottesdienstes stattfinden kann.

Kosten und Kirchensteuer

Der Wiedereintritt selbst ist kostenlos. Allerdings bist du nach dem Wiedereintritt wieder verpflichtet, Kirchensteuer zu zahlen, sofern du ein steuerpflichtiges Einkommen hast.

Gedanken, Leben Beruf und Gesundheit

Powershell: KeePass-Nutzung in Skripten

Posted on 20. Mai 202519. Mai 2025 By Daniel Lensing Keine Kommentare zu Powershell: KeePass-Nutzung in Skripten

Die Verwaltung von Passwörtern ist in der modernen IT-Landschaft ein zentrales Thema. In diesem Artikel gehe ich darauf ein, wie man mithilfe von PowerShell und KeePass-Passwortdatenbanken einen sicheren Zugriff auf sensible Informationen ermöglicht. Dabei werden zwei Ansätze vorgestellt: Ein klassisches Skript, das direkt die KeePassLib.dll verwendet, sowie eine Methode, die das PowerShell-Modul Microsoft.PowerShell.SecretManagement in Kombination mit einem KeePass-Vault-Adapter nutzt. Außerdem zeige ich, wie man das Masterkennwort schützt, sodass es nicht als Klartext im Skript sichtbar ist.

1. Das klassische PowerShell-Skript mit KeePassLib.dll

Ein häufiger Ansatz besteht darin, ein PowerShell-Skript zu erstellen, das direkt auf die KeePassLib.dll zugreift. Diese Bibliothek, die üblicherweise bei der Installation von KeePass verfügbar ist, stellt alle nötigen Klassen und Methoden bereit, um auf die Datenbank zuzugreifen und Einträge auszulesen.

Beispielskript:

<#
Dieses Skript öffnet eine KeePass-Datenbank (.kdbx) und extrahiert das Passwort eines
spezifizierten Eintrags. Bitte passe anschließend Pfade, den Eintragstitel und das Masterkennwort 
an deine Gegebenheiten an.

Voraussetzungen:
- KeePassLib.dll (normalerweise über die KeePass-Installation enthalten)
- Eine funktionierende KeePass-Datenbank (.kdbx) und das zugehörige Masterkennwort

Achtung: Sensible Daten (wie Masterkennwort) sollten nicht im Klartext hinterlegt werden.
#>

# Pfad zur KeePassLib.dll (anpassen, falls erforderlich)
$libPath = "C:\Program Files (x86)\KeePass Password Safe 2\KeePassLib.dll"
if (-Not (Test-Path $libPath)) {
    Write-Error "Die KeePassLib.dll wurde unter '$libPath' nicht gefunden."
    exit 1
}
Add-Type -Path $libPath

# Datenbankpfad und Zugangsdaten (bitte an deine Umgebung anpassen)
$dbPath = "C:\Path\Zu\Deiner\Datenbank.kdbx"   # Pfad zur KeePass-Datenbank
$masterPassword = "DeinMasterPasswort"          # Masterkennwort (nicht im Klartext speichern!)

# Erstelle einen CompositeKey und füge das Masterkennwort als Benutzer-Schlüssel hinzu
$compositeKey = New-Object KeePassLib.Keys.CompositeKey
$passwordKey = New-Object KeePassLib.Keys.KcpPassword
$passwordKey.Password = $masterPassword
$compositeKey.AddUserKey($passwordKey)

# Öffne und lade die KeePass-Datenbank
$db = New-Object KeePassLib.PwDatabase
try {
    $db.Open($dbPath, $compositeKey, [System.IO.FileAccess]::Read)
} catch {
    Write-Error "Fehler beim Öffnen der Datenbank: $_"
    exit 1
}

# Suche nach einem Eintrag anhand seines Titels (ein Beispielwert, bitte anpassen)
$entryTitle = "MeinEintrag"   # Titel des gewünschten Eintrags
$entry = $db.RootGroup.FindEntries({$_.Strings.ReadSafe("Title") -eq $entryTitle}, $true) | Select-Object -First 1

if ($null -eq $entry) {
    Write-Output "Kein Eintrag mit dem Titel '$entryTitle' gefunden."
} else {
    # Extrahiere das Passwort des gefundenen Eintrags
    $password = $entry.Strings.ReadSafe("Password")
    Write-Output "Das Passwort für den Eintrag '$entryTitle' lautet: $password"

    # Hier kannst du das Passwort weiterverarbeiten, z. B. einem anderen Skript übergeben oder in Variablen speichern.
}

# Schließe die Datenbank, um Ressourcen freizugeben
$db.Close()

Erklärung:

  • Das Skript lädt zunächst die KeePassLib.dll und überprüft, ob der Pfad korrekt ist.
  • Anschließend wird ein CompositeKey erstellt, dem das Masterkennwort als Schlüssel hinzugefügt wird.
  • Mithilfe der gewählten API öffnet man die KeePass-Datenbank im Lesemodus und sucht nach einem Eintrag anhand des Titels.
  • Wird der Eintrag gefunden, wird das Passwort extrahiert und ausgegeben, sodass es in weiteren Prozessen genutzt werden kann.

Dieser Ansatz bietet eine direkte und flexible Möglichkeit, mit KeePass-Datenbanken zu arbeiten, setzt aber voraus, dass sensible Daten (etwa das Masterkennwort) sicher gehandhabt werden.

2. Nutzung von Microsoft.PowerShell.SecretManagement

Ein moderner und oft sichererer Ansatz ist die Verwendung des Moduls Microsoft.PowerShell.SecretManagement. Dieser Vault-Ansatz bietet eine einheitliche API zur Verwaltung von Geheimnissen aus verschiedensten Quellen – KeePass gehört dabei mit einem dedizierten Adapter dazu.

Der erste Schritt besteht darin, die Module zu installieren:

Install-Module Microsoft.PowerShell.SecretManagement -Scope CurrentUser
Install-Module KeePassSecretManagement -Scope CurrentUser

Nach erfolgreicher Installation registrierst du deinen KeePass-Vault in der SecretManagement-Umgebung:

Register-SecretVault -Name "KeePassVault" -ModuleName KeePassSecretManagement -DefaultVault `
    -VaultParameters @{ 
        DatabasePath = "C:\Path\Zu\Deiner\Datenbank.kdbx"; 
        MasterPassword = "DeinMasterPasswort" 
    }

Sobald der Vault registriert ist, kannst du über den Befehl Get-Secret darauf zugreifen:

Get-Secret -Name "MeinEintrag" -Vault "KeePassVault"

Vorteile:

  • Einheitliche Schnittstelle: Egal, ob du Azure Key Vault, SecretStore oder KeePass einsetzt – die API bleibt gleich.
  • Verbesserte Sicherheit: Der Vault-Adapter abstrahiert die direkte Handhabung von Kennwörtern und ermöglicht damit einen saubereren Zugang.
  • Flexibilität und Erweiterbarkeit: Weitere Vaults können problemlos integriert werden, was besonders in größeren Automatisierungsszenarien nützlich ist.

3. Schutz des Masterkennworts – So vermeidest du Klartext im Skript

Ein häufiges Sicherheitsrisiko bei Skripten ist die Hardcodierung von Passwörtern. Es gibt einige Best Practices, um das Masterkennwort zu schützen:

3.1. Eingabeaufforderung zur Laufzeit mit SecureString

Statt das Kennwort im Skript zu speichern, forderst du den Benutzer zur Laufzeit zur Eingabe auf. Dies erfolgt mit dem Parameter -AsSecureString:

$secureMasterPassword = Read-Host "Bitte gib dein Masterkennwort ein" -AsSecureString

Falls ein normaler String benötigt wird, kann der SecureString konvertiert werden:

$unsecureMasterPassword = [Runtime.InteropServices.Marshal]::PtrToStringAuto(
    [Runtime.InteropServices.Marshal]::SecureStringToBSTR($secureMasterPassword)
)

3.2. Nutzung von SecretManagement/SecretStore

Neben der direkten Eingabe kannst du das Kennwort auch zentral über ein Vault-Modul speichern. So greifst du später sicher darauf zu, ohne es im Skript zu hinterlegen:

Register-SecretVault -Name "KeePassVault" -ModuleName KeePassSecretManagement -DefaultVault `
    -VaultParameters @{ 
        DatabasePath   = "C:\Path\Zu\Deiner\Datenbank.kdbx"; 
        MasterPassword = (Get-Secret -Name "MasterKennwort" -Vault "SecretStore")
    }

3.3. Verschlüsselte Konfigurationsdatei

Eine weitere Möglichkeit ist, das Masterkennwort in einer verschlüsselten Datei abzulegen. Dabei wird der SecureString mit ConvertFrom-SecureString verschlüsselt abgespeichert und bei Bedarf wieder eingelesen:

Speichern:

$secureMasterPassword = Read-Host "Bitte gib dein Masterkennwort ein" -AsSecureString
$secureMasterPassword | ConvertFrom-SecureString | Out-File "C:\Path\zur\secret.config"

Laden:

$encryptedString = Get-Content "C:\Path\zur\secret.config"
$secureMasterPassword = $encryptedString | ConvertTo-SecureString

Diese Methode nutzt die Windows-Datenschutz-API (DPAPI), die sicherstellt, dass die Datei nur mit dem Benutzerkonto, das sie erstellt hat, entschlüsselt werden kann.

Fazit

Die sichere Verwaltung von Passwörtern ist in jeder IT-Umgebung essenziell. Mit PowerShell und KeePass stehen dir zwei leistungsfähige Ansätze zur Verfügung:

  • Der direkte Zugriff über die KeePassLib.dll bietet Flexibilität und Kontrolle, erfordert aber sorgfältigen Umgang mit sensiblen Daten.
  • Die Verwendung des Microsoft.PowerShell.SecretManagement-Moduls in Kombination mit einem KeePass-Vault-Adapter sorgt für eine einheitliche, moderne und oft sicherere Verwaltung von Geheimnissen.

Besonders wichtig ist es, das Masterkennwort nicht im Klartext im Skript zu hinterlegen, sondern es entweder zur Laufzeit einzugeben, zentral in einem sicheren Vault zu speichern oder in einer verschlüsselten Datei abzulegen. Dadurch minimierst du das Risiko eines unbefugten Zugriffs und stellst sicher, dass deine Passwörter geschützt bleiben.

Client, Powershell, Programmierung, Server, Windows 10, Windows 11, Windows Server 2019, Windows Server 2022, Windows Server 2025

Die historische Verteilung von Singles und Paaren

Posted on 18. Mai 202517. Mai 2025 By Daniel Lensing Keine Kommentare zu Die historische Verteilung von Singles und Paaren

Die Beziehungsmuster in Deutschland haben sich über die Jahrzehnte erheblich verändert. Während in früheren Jahrhunderten die Ehe und feste Partnerschaften dominierend waren, erleben wir heute eine zunehmende Diversität an Lebensformen.

1. Die traditionelle Ehegesellschaft (bis ins 19. Jahrhundert)

In vormodernen Gesellschaften war die Ehe der zentrale Lebensentwurf für die meisten Menschen. Wirtschaftliche und gesellschaftliche Strukturen förderten feste Partnerschaften.

  • Arrangierte Ehen: Besonders in Adelskreisen und ländlichen Regionen waren Ehen häufig nicht aus Liebe, sondern zur Sicherung von Besitz und sozialen Stellungen geschlossen.
  • Kaum alleinlebende Personen: Singles waren eine Seltenheit und oft sozial benachteiligt.

2. Industrialisierung und veränderte Lebensstrukturen (19. – frühes 20. Jahrhundert)

Mit der Industrialisierung kam es zu einem Wandel: Menschen zogen in Städte, die Unabhängigkeit nahm zu und klassische Familienstrukturen begannen sich zu lockern.

  • Spätere Eheschließungen: Viele Menschen heirateten erst nach wirtschaftlicher Stabilisierung.
  • Mehr Singles: Besonders in Städten lebten erstmals viele Menschen allein.

3. Nachkriegszeit: Die Hochphase der traditionellen Familie (1950–1970)

Nach den Weltkriegen kam es zu einem Heiratsboom. Die Ehe war das dominierende Lebensmodell.

  • Hohe Heiratsrate: Fast jeder Erwachsene war verheiratet.
  • Sozialer Druck zur Ehe: Es galt als ungewöhnlich, langfristig allein zu bleiben.

4. Liberalisierung und Individualisierung (1970er–2000er Jahre)

Mit der kulturellen Liberalisierung der 1970er Jahre entstanden alternative Lebensentwürfe. Die Ehe wurde nicht mehr als zwingend erforderlich angesehen.

  • Mehr Singles: Die Akzeptanz des Alleinlebens wuchs.
  • Steigende Scheidungsrate: Lockerere Scheidungsgesetze führten zu mehr Trennungen.
  • Neue Partnerschaftsmodelle: Unverheiratete Lebensgemeinschaften nahmen zu.

5. Gegenwart und Zukunft: Die Diversifizierung von Beziehungsmodellen

Heute gibt es eine Vielfalt an Lebensformen, von klassischen Ehen bis hin zu alternativen Lebensgemeinschaften und Single-Haushalten.

Aktuelle Statistiken zur Verteilung

  • Anstieg der Singles: Der Anteil der Singles ist auf 30 % der Menschen zwischen 18 und 69 Jahren gestiegen.
  • Veränderung der Verheirateten: 1996 waren 91 % der zusammenlebenden Paare verheiratet, 2023 nur noch 84 %.
  • Mehr Alleinlebende: Zwischen 2013 und 2023 stieg die Zahl der Alleinlebenden um 1,3 Millionen (+8 %).
  • Unverheiratete Lebensgemeinschaften: Diese stiegen zwischen 2013 und 2023 um 22 %.
  • Digitale Partnersuche: Heute haben 24 % der Liierten zwischen 18 und 49 Jahren ihren Partner online kennengelernt.

Ein flexibleres Beziehungsmodell für die Zukunft

Die historischen Entwicklungen zeigen, dass Beziehungsmuster stark von gesellschaftlichen Veränderungen beeinflusst werden. Die Zukunft dürfte weiterhin von Wahlfreiheit und individuellen Lebensentwürfen geprägt sein.

Gedanken, Leben Beruf und Gesundheit

Powershell: Ist ein Kennwort bei „Have I Been Pwned“ bekannt?

Posted on 17. Mai 202517. Mai 2025 By Daniel Lensing Keine Kommentare zu Powershell: Ist ein Kennwort bei „Have I Been Pwned“ bekannt?

In der heutigen digitalen Welt ist die Sicherheit von Passwörtern wichtiger denn je. Datenlecks und Passwortdiebstähle sind an der Tagesordnung, und Millionen von Zugangsdaten gelangen regelmäßig in die Hände von Cyberkriminellen. Ein äußerst nützliches Tool zur Überprüfung der Sicherheit von Passwörtern ist die API „api.pwnedpasswords.com“, die von Have I Been Pwned (HIBP) bereitgestellt wird.

Wie funktioniert die API?

Die API verwendet das k-Anonymitätsprinzip, um sicherzustellen, dass das zu prüfende Passwort nicht vollständig offengelegt wird. Der Prozess sieht folgendermaßen aus:

  1. Der Benutzer oder die Anwendung hashen das zu überprüfende Passwort mit SHA-1.
  2. Die ersten 5 Zeichen des Hashs werden an die API gesendet.
  3. Die API antwortet mit einer Liste aller Hashes, die mit diesen ersten 5 Zeichen beginnen und in ihrer Datenbank gefunden wurden.
  4. Die Anwendung vergleicht den vollständigen Hash des geprüften Passworts mit den zurückgegebenen Hashes.
  5. Falls eine Übereinstimmung gefunden wird, bedeutet dies, dass das Passwort kompromittiert ist und nicht verwendet werden sollte.

Dieses Verfahren stellt sicher, dass ein vollständiger Passwort-Hash niemals über das Internet übertragen wird, wodurch das Risiko minimiert wird, dass Angreifer sensible Informationen abfangen können.

Wie spreche ich die API per Powershell auf?

Ich habe den Abruf in eine Funktion geschrieben. Dieses hat für mich den Vorteil, dass ich den dann notwendigen Aufruf an mehrern Stellen in Programmierungen verwendne kann.

function Test-PwnedPassword {
    param (
        [string]$Password
    )

    # Passwort hashen (SHA-1)
    $sha1 = New-Object System.Security.Cryptography.SHA1Managed
    $hashBytes = $sha1.ComputeHash([System.Text.Encoding]::UTF8.GetBytes($Password))
    $hashString = [BitConverter]::ToString($hashBytes) -replace '-',''
    
    # Ersten fünf Zeichen extrahieren
    $prefix = $hashString.Substring(0, 5)
    
    # API-Abfrage
    $url = "https://api.pwnedpasswords.com/range/$prefix"
    try {
        $response = Invoke-WebRequest -Uri $url -UseBasicParsing
        $hashes = $response.Content -split "`n"

        # Prüfen, ob das vollständige Hash-Suffix in der Liste ist
        foreach ($line in $hashes) {
            $parts = $line -split ":"
            if ($hashString.Substring(5) -eq $parts[0]) {
                Write-Output "Das Passwort wurde bereits $($parts[1]) Mal gefunden!"
                return
            }
        }
        Write-Output "Das Passwort wurde nicht gefunden."
    }
    catch {
        Write-Output "Fehler bei der API-Anfrage: $_"
    }
}

Für den Test des Skriptes kann folgender Test-Aufruf verwendet werden.

$passwort = Read-Host „Geben Sie Ihr Passwort ein“
Test-PwnedPassword -Password $passwort

Client, Powershell, Programmierung, Server, Windows 10, Windows 11, Windows Server, Windows Server 2019, Windows Server 2022, Windows Server 2025

Powershell: Onpremise-Gruppenmitgliedschaften nach Datum entfernen

Posted on 14. Mai 202512. Mai 2025 By Daniel Lensing Keine Kommentare zu Powershell: Onpremise-Gruppenmitgliedschaften nach Datum entfernen

Ich hatte die Problematik, dass während eines Projektes Gruppenberechtigungen datumsgesteuert entfernt werden sollten. Während des Projektes wurden mehrere Gruppen definiert, bei der Gruppenmitgliedschaften verarbeitet werden sollten.

Entsprechend wurden CSV-Dateien generiert als Grundlage für die Verarbeitung:

SamAccountName;ExpiryDate
jdoe;2025-05-12
asmith;2025-06-01

Die Dateien haben als Definition die folgende Struktur:

GroupExpLeave_<Gruppenname>.csv

Mit dem nun folgenden Skript werden die Mitglieder der Gruppen ermittelt und geprüft, ob das Ablaufdatum erreicht ist. Wenn dieses der Fall ist, wird der User aus der Mitgliedschaft entfernt.


# Verzeichnis mit den CSV-Dateien
$csvDirectory = "C:\CSC-Pfad"
$csvFiles = Get-ChildItem -Path $csvDirectory -Filter "GroupExpLeave_*.csv"

# Logdatei mit Tagesdatum
$logDate = Get-Date -Format "yyyy-MM-dd"
$logPath = Join-Path -Path $csvDirectory -ChildPath "GroupExpLeave_$logDate.log"

# Hashtable für Gruppenmitgliedschaften
$groupCache = @{}

foreach ($file in $csvFiles) {
    # Gruppennamen aus dem Dateinamen extrahieren
    if ($file.Name -match "^GroupExpLeave_(.+?)\.csv$") {
        $groupName = $matches[1]
        $csvPath = $file.FullName

        # CSV mit Semikolon einlesen
        $members = Import-Csv -Path $csvPath -Delimiter ";"
        $today = Get-Date
        $remainingMembers = @()

        # Gruppenmitglieder einmalig abrufen und cachen
        if (-not $groupCache.ContainsKey($groupName)) {
            try {
                $groupCache[$groupName] = Get-ADGroupMember -Identity $groupName | Select-Object -ExpandProperty SamAccountName
            } catch {
                Add-Content -Path $logPath -Value "[$(Get-Date)] Error Requesting GroupMembers $groupName: $_"
                continue
            }
        }

        $cachedMembers = $groupCache[$groupName]

        foreach ($member in $members) {
            $expiryDate = Get-Date $member.ExpiryDate

            if ($expiryDate -lt $today) {
                if ($cachedMembers -contains $member.SamAccountName) {
                    try {
                        Remove-ADGroupMember -Identity $groupName -Members $member.SamAccountName -Confirm:$false
                        Add-Content -Path $logPath -Value "[$(Get-Date)] User $($member.SamAccountName) from $groupName removed (Ablaufdatum: $expiryDate)."
                    } catch {
                        Add-Content -Path $logPath -Value "[$(Get-Date)] Error on removing user $($member.SamAccountName) from $groupName: $_"
                        $remainingMembers += $member
                    }
                } else {
                    Add-Content -Path $logPath -Value "[$(Get-Date)] User $($member.SamAccountName) is not member of group $groupName – ignored."
                }
            } else {
                $remainingMembers += $member
            }
        }

        # Aktualisierte CSV-Datei schreiben
        $remainingMembers | Export-Csv -Path $csvPath -Delimiter ";" -NoTypeInformation -Encoding UTF8
        Add-Content -Path $logPath -Value "[$(Get-Date)] CSV-File $($file.Name) was created"
    }
}

Die angewandte Datei für die jeweilige Gruppe wird mit den noch gültigen Benutzern nach deren Prüfung neu erstellt. Es ist bei der Einplanung des Tasks darauf zu achten, dass zu dem Zeitpunkt auf die Steuer-Dateien nicht zugegriffen wird.

Powershell, Programmierung, Server, Windows Server 2019, Windows Server 2022, Windows Server 2025

Seitennummerierung der Beiträge

Vorherige 1 … 6 7 8 … 157 Nächste

Daniel Lensing

Ich betreibe diesen Blog, bei dem ich meine Erfahrungen aus der IT & dem Berufsalltag sowie dem Wahnsinn des Lebens mit Höhen und Tiefen. Darunter meine „Erlebnisreise“ zum Planeten „Diabetes mellitus Typ-2“.

Translate:

Follow us

Kategorien

  • Allgemein (1)
  • Client (245)
    • Android (8)
    • Fedora (Linux) (5)
    • iOS (6)
    • Mac OS X (6)
    • Peripherie (5)
    • Ubuntu (Linux) (9)
    • Windows 10 (63)
    • Windows 11 (31)
    • Windows 7 (100)
    • Windows 8 (36)
    • Windows 8.1 (28)
    • Windows Mobile (2)
    • Windows Vista (65)
    • Windows XP (21)
  • Cloud (15)
    • Amazon AWS (1)
    • Microsoft Azure (7)
    • Office 365 (9)
  • Fortbewegung (59)
    • Auto (19)
    • Bahn (19)
    • Beinarbeit (6)
    • Flugzeug (4)
    • Zweirad (15)
  • IT-Nachrichten (37)
  • Leben Beruf und Gesundheit (219)
    • #t2dhero (60)
    • Arbeitszimmer (39)
    • Audio (22)
    • Film / Kino (7)
    • Gedanken (81)
    • Gesundheit (39)
    • Internet (7)
    • Lebensmittel & Essen (23)
    • Lesestoff (21)
    • Sport (11)
    • Veranstaltung (3)
  • Lehren & Lernen (50)
    • Forschung (2)
    • Konferenzen (3)
    • Lehre (1)
    • Präsentation (4)
    • Zertifizierung (42)
  • Programme (334)
    • Android-Apps (28)
    • Eigene Tools (13)
    • iOS-Apps (7)
    • Office (89)
    • Patchday+Updates (77)
    • Software (155)
    • Spiele (3)
    • Windows Phone-Apps (2)
  • Programmierung (97)
    • AutoIT (2)
    • KiXtart (2)
    • PHP (3)
    • Power Automate (1)
    • Powershell (66)
    • VB.NET (11)
    • VBA (10)
    • VBS (10)
  • Server (165)
    • Citrix XenServer (2)
    • Exchange Server (27)
    • Lync Server (1)
    • System Center (4)
    • Ubuntu Server (2)
    • Windows Home Server (2)
    • Windows Server (92)
    • Windows Server 2012 (45)
    • Windows Server 2016 (15)
    • Windows Server 2019 (22)
    • Windows Server 2022 (21)
    • Windows Server 2025 (14)
  • Telekommunikation (38)
    • Festnetz (3)
    • Internet (13)
    • Mobilfunk (23)
  • Verkauf & Verlosung (1)
  • Web-Installationen (37)
    • Joomla (4)
    • Mastodon (1)
    • MediaWiki (10)
    • phpMyAdmin (2)
    • Piwik (4)
    • Wordpress (20)
Mastodon

Copyright © 2026 Daniels Tagesmeldungen.

Powered by PressBook WordPress theme