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 – Forxiga (Dapagliflozin)
    • Medikament – Eylea (Aflibercept)
    • Medikament – Lucentis (Ranibizumab )
    • Medikament – Metformin
  • Disclaimer
  • Toggle search form

Kategorie: Server

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

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

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

Powershell: Ziel einer URL abfragen

Posted on 12. Mai 202510. Mai 2025 By Daniel Lensing Keine Kommentare zu Powershell: Ziel einer URL abfragen

Ich durfte am Wochenende einen Umzug einer Domain-Adresse begleiten. Dazu wurden Webservices angepasst. Ich wollte die erforderliche Abfrage nach der Umstellung schnell per Skript prüfen. Bei diesem ist das folgende entstanden:

[CmdletBinding()]
param(
    [Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true)]
    [string[]]$URL
)

function Expand-URL {
    param (
        [Parameter(Mandatory = $true)]
        [string]$ShortUrl
    )
    try {
        $resp = Invoke-WebRequest -Uri $ShortUrl -MaximumRedirection 10 -Method Head -UseBasicParsing
        return $resp.BaseResponse.ResponseUri.AbsoluteUri
    }
    catch {
        try {
            $resp = Invoke-WebRequest -Uri $ShortUrl -MaximumRedirection 10 -Method Get -UseBasicParsing
            return $resp.BaseResponse.ResponseUri.AbsoluteUri
        }
        catch {
            Write-Error "Fehler beim Abrufen der URL [$ShortUrl]: $_"
            return $null
        }
    }
}

foreach ($shortUrl in $URL) {
    $finalUrl = Expand-URL -ShortUrl $shortUrl
    if ($finalUrl) {
        Write-Output "Zieladresse: "$finalUrl
    }
    else {
        Write-Output "Konnte die Zieladresse für $shortUrl nicht ermitteln."
    }
}

Dieses muss als Datei gespeichert werden. Mit dem Aufruf

.\Skript.ps1 https://www.url.com

kann dann die Adresse aufgelöst werden. Sollte eine Weiterleitung eingerichtet sein, wird die passende Zieladresse ausgegeben.

Internet, Powershell, Programmierung, Web-Installationen, Windows Server 2019, Windows Server 2022, Windows Server 2025

Support-Ende für Ubuntu 20.04

Posted on 29. April 202521. April 2025 By Daniel Lensing Keine Kommentare zu Support-Ende für Ubuntu 20.04

Ubuntu 20.04 LTS (Focal Fossa) hat seit seiner Veröffentlichung im April 2020 viele Nutzer weltweit begleitet. Als Long-Term-Support-Version (LTS) bot es fünf Jahre lang Sicherheitsupdates und technische Unterstützung. Doch am 29. Mai 2025 endet der reguläre Support für diese Version.

Was bedeutet das Supportende?

Das Ende des Supports bedeutet, dass keine Sicherheitsupdates, Fehlerbehebungen oder technische Unterstützung mehr bereitgestellt werden. Systeme, die weiterhin auf Ubuntu 20.04 laufen, sind anfällig für Sicherheitslücken und potenzielle Angriffe. Dies stellt ein erhebliches Risiko dar, insbesondere für Unternehmen, die auf dieser Version arbeiten.

Optionen für Nutzer

  1. Upgrade auf eine neuere Version: Ubuntu empfiehlt ein Upgrade auf Ubuntu 22.04 LTS (Jammy Jellyfish) und anschließend auf Ubuntu 24.04 LTS (Noble Numbat). Beide Versionen bieten langfristigen Support und verbesserte Sicherheitsfunktionen.
  2. Ubuntu Pro: Für Nutzer, die ein Upgrade nicht durchführen können, bietet Canonical das erweiterte Support-Programm Ubuntu Pro an. Dieses Programm verlängert den Support für Ubuntu 20.04 um bis zu fünf Jahre und bietet Sicherheitsupdates für tausende Pakete.

Warum ist ein Upgrade wichtig?

Ein Upgrade schützt Ihre Infrastruktur vor Sicherheitsrisiken und ermöglicht den Zugang zu neuen Funktionen und Leistungsverbesserungen. Ubuntu 22.04 und 24.04 bieten nicht nur verbesserten Schutz, sondern auch langfristigen Support bis 2029 (bei 22.04.) oder 2032 (bei 24.04.).

Welche Kosten entstehen durch Ubuntu Pro?

Die Kosten für Ubuntu Pro variieren je nach Nutzung und Supportumfang:

  1. Für Privatanwender: Ubuntu Pro ist kostenlos für bis zu 5 Geräte. Aktive Mitglieder in der Ubuntu-Community können es sogar auf bis zu 50 Geräten kostenlos nutzen.
  2. Für Unternehmen:
    • Desktop oder Workstation: Die Preise liegen zwischen 25 und 300 USD pro Jahr.
    • Server mit unbegrenzten virtuellen Maschinen: Die Kosten reichen von 500 bis 3.400 USD pro Jahr, abhängig vom gewählten Supportumfang (Self-Service, Infrastruktur-Support oder vollständiger Support).

Ubuntu Pro bietet Sicherheitsupdates für bis zu 10 Jahre und deckt Tausende von Paketen ab. Es ist besonders nützlich für Unternehmen, die langfristige Stabilität und Sicherheit benötigen.

Arbeitszimmer, Client, Server, Ubuntu (Linux), Ubuntu Server

Powershell-Modul: ImportExcel

Posted on 24. April 202521. April 2025 By Daniel Lensing Keine Kommentare zu Powershell-Modul: ImportExcel

Wenn es um Datenverarbeitung und Berichterstellung geht, ist Excel oft ein unverzichtbares Werkzeug. Dennoch kann die Arbeit mit Excel-Dateien durch manuelle Prozesse zeitaufwändig und fehleranfällig sein. Hier kommt das PowerShell-Modul „ImportExcel“ ins Spiel – eine kraftvolle Lösung, um Excel-Dateien zu erstellen, zu bearbeiten und zu analysieren, ohne dass Microsoft Excel installiert sein muss.

Einführung in das Modul „ImportExcel“

Das Modul „ImportExcel“, entwickelt von Doug Finke, ist eine Erweiterung für PowerShell, die es Benutzern ermöglicht, mit Excel-Dateien auf programmatische Weise zu arbeiten. Es bietet eine Vielzahl von Cmdlets, um Excel-Dateien zu importieren, zu exportieren und sogar zu visualisieren. Der große Vorteil des Moduls besteht darin, dass es für die meisten Aufgaben keine Vorinstallation von Microsoft Excel erfordert. Dadurch wird die Automatisierung von Prozessen auch in Umgebungen möglich, in denen Excel nicht verfügbar ist.

Die wichtigsten Funktionen des Moduls

Das „ImportExcel“-Modul bietet eine große Anzahl von Funktionen. Hier sind einige der wichtigsten Cmdlets:

  1. Export-Excel
    Mit diesem Cmdlet kannst du Daten aus PowerShell-Objekten direkt in eine Excel-Datei exportieren. Du kannst Tabellen formatieren, Farben hinzufügen und Pivot-Tabellen erstellen. Beispiel:
   Get-Process | Export-Excel -Path "Prozesse.xlsx" -AutoSize
  1. Import-Excel
    Dieses Cmdlet ermöglicht das Importieren von Daten aus Excel-Dateien in PowerShell-Objekte. Es ist ideal für die Analyse und Weiterverarbeitung von Daten. Beispiel:
   $daten = Import-Excel -Path "Daten.xlsx"
  1. Open-ExcelPackage
    Damit kannst du eine Excel-Datei öffnen und gezielt bearbeiten, z. B. bestimmte Arbeitsblätter oder Zellen ändern.
  2. New-ExcelChart
    Mit diesem Cmdlet kannst du Diagramme direkt in Excel-Dateien erstellen. Es unterstützt verschiedene Diagrammtypen wie Balken-, Linien- oder Tortendiagramme.

Anwendungsfälle für das Modul „ImportExcel“

Das Modul eignet sich für eine Vielzahl von Szenarien, darunter:

  • Berichterstellung: Automatisiertes Erstellen von Berichten in Excel, z. B. für Leistungsanalysen oder Projektstatusberichte.
  • Datenanalyse: Importieren und Verarbeiten großer Datenmengen für weitere Analysen.
  • Visualisierung: Erstellen von Diagrammen und Grafiken für Präsentationen oder Zusammenfassungen.
  • Datenmigration: Exportieren von Daten aus einer Quelle und Importieren in ein Excel-Format.

Vorteile des „ImportExcel“-Moduls

  • Zeitersparnis: Automatisierung von Aufgaben, die normalerweise manuelle Arbeit erfordern.
  • Flexibilität: Kompatibilität mit verschiedenen PowerShell-Versionen und Betriebssystemen.
  • Keine Abhängigkeit von Excel: Ideal für Serverumgebungen, in denen Excel nicht installiert ist.

Fazit

Das PowerShell-Modul „ImportExcel“ ist ein vielseitiges Werkzeug, das die Arbeit mit Excel-Dateien erheblich erleichtert und automatisiert. Egal, ob du Berichte erstellen, Daten analysieren oder Visualisierungen durchführen möchtest, das Modul bietet eine einfache und effiziente Lösung. Durch seine umfangreichen Funktionen und einfache Bedienung ist es eine Bereicherung in der Autmatisierung.

Powershell, Windows 10, Windows 11, Windows Server 2016, Windows Server 2019, Windows Server 2022

Seitennummerierung der Beiträge

1 2 … 23 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 (234)
    • Android (7)
    • Fedora (Linux) (5)
    • iOS (5)
    • Mac OS X (5)
    • Peripherie (5)
    • Ubuntu (Linux) (8)
    • Windows 10 (59)
    • Windows 11 (20)
    • 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 (57)
    • Auto (18)
    • Bahn (18)
    • Beinarbeit (6)
    • Flugzeug (4)
    • Zweirad (14)
  • IT-Nachrichten (37)
  • Leben Beruf und Gesundheit (199)
    • #t2dhero (50)
    • Arbeitszimmer (28)
    • Audio (20)
    • Film / Kino (7)
    • Gedanken (78)
    • Gesundheit (31)
    • Internet (5)
    • Lebensmittel & Essen (22)
    • Lesestoff (18)
    • Sport (11)
    • Veranstaltung (3)
  • Lehren & Lernen (48)
    • Forschung (1)
    • Konferenzen (3)
    • Präsentation (3)
    • Zertifizierung (42)
  • Programme (322)
    • Android-Apps (27)
    • Eigene Tools (11)
    • iOS-Apps (6)
    • Office (86)
    • Patchday+Updates (73)
    • Software (149)
    • Spiele (3)
    • Windows Phone-Apps (2)
  • Programmierung (90)
    • AutoIT (1)
    • KiXtart (1)
    • PHP (3)
    • Power Automate (1)
    • Powershell (59)
    • VB.NET (8)
    • VBA (10)
    • VBS (10)
  • Server (159)
    • Citrix XenServer (2)
    • Exchange Server (26)
    • 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 (18)
    • Windows Server 2022 (15)
    • Windows Server 2025 (8)
  • Telekommunikation (38)
    • Festnetz (3)
    • Internet (13)
    • Mobilfunk (23)
  • Verkauf & Verlosung (1)
  • Web-Installationen (36)
    • Joomla (4)
    • Mastodon (1)
    • MediaWiki (9)
    • phpMyAdmin (2)
    • Piwik (4)
    • Wordpress (20)
Mastodon

Copyright © 2025 Daniels Tagesmeldungen.

Powered by PressBook WordPress theme