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

Kategorie: Server

Powershell: Objektzähler pro OU

Posted on 17. April 202515. April 2025 By Daniel Lensing Keine Kommentare zu Powershell: Objektzähler pro OU

Im Rahmen einer Bereinigungsanforderung einer Active Directory-Domäne musste ich mir ein Skript erstellen, welches mir die Anzahl der Objekte aufgeteilt nach Typ darstellt:

  • Userobjekte
  • Gruppenobjekte
  • Computerobjekte

Aus diesem Grund ist das folgende Skript entstanden:

$results = Get-ADOrganizationalUnit -Properties CanonicalName,description -Filter * |
Sort-Object CanonicalName |
ForEach-Object {
    [pscustomobject]@{
        Name          = Split-Path $_.CanonicalName -Leaf
        CanonicalName = $_.CanonicalName
        UserCount     = @(Get-AdUser -Filter * -SearchBase $_.DistinguishedName -SearchScope OneLevel).Count
        GroupCount    = @(Get-AdGroup -Filter * -SearchBase $_.DistinguishedName -SearchScope OneLevel).Count
        ComputerCount = @(Get-AdComputer -Filter * -SearchBase $_.DistinguishedName -SearchScope OneLevel).Count
    }
}
$results | Select-Object canonicalname,Description,usercount,groupcount,computercount,name | export-csv C:\Temp\OUStructure.csv -Encoding UTF8 -Delimiter ";" -NoTypeInformation
Powershell, Programmierung, Server, Windows Server 2019, Windows Server 2022

Anwendungsspezifisches Eventlog für Powershell-Skript

Posted on 18. Februar 202517. Februar 2025 By Daniel Lensing Keine Kommentare zu Anwendungsspezifisches Eventlog für Powershell-Skript

Im Rahmen eines Skriptes kann es sinnvoll sein, wenn man ein dediziertes Eventlog erstellt. Dieses kann dann zum Beispiel in einer Monitoring-Lösung weiterverarbeitet werden.

Dazu muss ein neues „Eventlog“ sowie eine neue „Source“ erstellt werden über den Powershell-Befehl „New-Eventlog„:

New-EventLog -LogName "ApplicationName" -Source "AutoScriptPS1" -EA SilentlyContinue

Diese Befehlszeile muss mit administrativen Rechten ausgeführt werden.

Anschließend ist es möglich das neu erstellte Eventlog per Write-Eventlog mit Werten zu befüllen:

Write-EventLog 
      -LogName "ApplicationName"'
      -Source "AutoScriptPS1"'
      -EntryType "Error"'
      -Message "An issue has stopped the script."'
      -EventId 99

Als „EntryType“ können neben „Error“ auch „Information“ oder „Warning“ genutzt werden. Die EventID kann bis zu einem Wert 65535 definiert werden.

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

Neuer Modi für LAPS unter W11 24H2 und Server 2025

Posted on 17. Februar 202516. Februar 2025 By Daniel Lensing Keine Kommentare zu Neuer Modi für LAPS unter W11 24H2 und Server 2025

Die Windows Local Administrator Password Solution (Windows LAPS) ist ein leistungsstarkes Werkzeug zur Verwaltung und Rotation der Passwörter lokaler Administratorkonten. Mit der Einführung von Windows Server 2025 und Windows 11 24H2 wurden neue Funktionen und Modi hinzugefügt, die die Verwaltung dieser Konten weiter vereinfachen und verbessern.

Überblick über Windows LAPS

Windows LAPS ist darauf ausgelegt, die Passwörter lokaler Windows-Konten regelmäßig zu rotieren, um die Sicherheit zu erhöhen. Dies kann das integrierte Administratorkonto oder ein benutzerdefiniertes neues Konto sein. Der IT-Administrator hat zwei verschiedene Modi zur Auswahl: den manuellen und den automatischen Kontoverwaltungsmodus.

Manueller Kontoverwaltungsmodus

Der manuelle Modus ist der Standardmodus und bietet dem IT-Administrator die Kontrolle über alle Aspekte des verwalteten Kontos, außer dem Passwort. Das Passwort wird von Windows LAPS verwaltet und geschützt1. Der IT-Administrator kann wählen, ob das integrierte Administratorkonto oder ein benutzerdefiniertes neues Konto verwaltet werden soll. Wenn ein benutzerdefiniertes Konto gewählt wird, muss der IT-Administrator dieses Konto vor der Aktivierung von Windows LAPS erstellen.

Vorteile des manuellen Modus:

  • Flexibilität: Der IT-Administrator hat volle Kontrolle über die Konfiguration des Kontos.
  • Sicherheit: Das Passwort wird automatisch geschützt und rotiert.

Nachteile des manuellen Modus:

  • Komplexität: Der IT-Administrator muss das Konto manuell erstellen und verwalten.
  • Mögliche Fehler: Da der Administrator mehr Verantwortung trägt, besteht ein höheres Risiko für menschliche Fehler.

Automatischer Kontoverwaltungsmodus

Der automatische Modus ist ein optionaler Modus, der standardmäßig deaktiviert ist. In diesem Modus übernimmt Windows LAPS die vollständige Verwaltung des Kontos, einschließlich der Erstellung und Löschung des Kontos sowie der Passwortrotation. Der IT-Administrator kann wählen, ob das integrierte Administratorkonto oder ein benutzerdefiniertes neues Konto verwaltet werden soll.

Vorteile des automatischen Modus:

  • Einfachheit: Windows LAPS übernimmt die gesamte Verwaltung des Kontos, was die Komplexität reduziert.
  • Sicherheit: Das Konto wird automatisch erstellt und verwaltet, was das Risiko von menschlichen Fehlern minimiert.

Nachteile des automatischen Modus:

  • Weniger Flexibilität: Der IT-Administrator hat weniger Kontrolle über die Konfiguration des Kontos.
  • Abhängigkeit von Windows LAPS: Die Verwaltung des Kontos ist vollständig von Windows LAPS abhängig, was bei Problemen mit dem Tool zu Schwierigkeiten führen kann.

Zusammenfassend

Windows LAPS bietet nun zwei verschiedene Kontoverwaltungsmodi, die jeweils ihre eigenen Vor- und Nachteile haben. Der manuelle Modus bietet mehr Flexibilität und Kontrolle, erfordert jedoch mehr Aufwand und birgt ein höheres Risiko für menschliche Fehler. Der automatische Modus hingegen vereinfacht die Verwaltung und erhöht die Sicherheit, bietet jedoch weniger Flexibilität.

Client, Server, Windows 11, Windows Server 2025

Gruppenrichtlinien-Bereinigungen, die Zweite

Posted on 29. Januar 202529. Januar 2025 By Daniel Lensing Keine Kommentare zu Gruppenrichtlinien-Bereinigungen, die Zweite

Aufgrund des ersten Artikels zum Thema Gruppenrichtlinien-Bereinigung bekam ich Nachfragen, so dass ich die Antworten gerne ebenfalls in einen neuen Artikel einarbeiten möchte.

Nicht genutzt WMI-Filter

Gruppenrichtlinien können mit WMI-Filtern eingeschänkt werden. Dadurch können diese auf definierte Systeme oder Benutzer angewandt werden, ohne strukturell in der Domänenstruktur zu definieren. Zum Bespiel können verschiedene Betriebssysteme oder auch Hardware-Hersteller gefiltert werden. Entsprechend können aber auch diese mit der Zeit ungenutzt im Speicher bleiben:

# Importieren des Active Directory-Moduls
Import-Module ActiveDirectory

# Funktion zum Finden nicht verlinkter WMI-Filter
function Get-UnlinkedWMIFilters {
    # Abrufen aller WMI-Filter
    $allWMIFilters = Get-GpoWMIFilter -All

    # Liste zum Speichern nicht verlinkter WMI-Filter
    $unlinkedWMIFilters = @()

    # Schleife durch alle WMI-Filter
    foreach ($filter in $allWMIFilters) {
        # Abrufen aller verlinkten GPOs für den aktuellen WMI-Filter
        $linkedGPOs = Get-Gpo -All | Where-Object { $_.WmiFilter -eq $filter }

        # Überprüfen, ob keine GPOs verlinkt sind
        if ($linkedGPOs.Count -eq 0) {
            # Hinzufügen des WMI-Filters zur Liste nicht verlinkter WMI-Filter
            $unlinkedWMIFilters += $filter
        }
    }

    # Ausgabe der nicht verlinkten WMI-Filter
    foreach ($unlinkedFilter in $unlinkedWMIFilters) {
        Write-Output "WMI-Filter '$($unlinkedFilter.Name)';(ID: $($unlinkedFilter.Id))"
    }
}

# Aufruf der Funktion
Get-UnlinkedWMIFilters

Richtlinien ohne Sicherheitsfilter

Über Sicherheitsfilter wie AD-Benutzer, AD-Gruppen oder AD-Computer können ebenfalls Verteilungen wie bei den WMI-Filtern oder der aktiven Funktionalität der Gruppenrichtlinien eingeschränkt werden. So können auch in diesem Fall „Altbestände“ vorhanden bleiben:

# Importieren des GroupPolicy-Moduls
Import-Module GroupPolicy

# Funktion zum Finden von GPOs ohne Sicherheitsfilter
function Get-GPOsWithoutSecurityFilter {
    # Abrufen aller GPOs
    $allGPOs = Get-GPO -All

    # Liste zum Speichern von GPOs ohne Sicherheitsfilter
    $gposWithoutSecurityFilter = @()

    # Schleife durch alle GPOs
    foreach ($gpo in $allGPOs) {
        # Abrufen der Sicherheitsfilter des aktuellen GPO
        $securityFilters = Get-GPOReport -Guid $gpo.Id -ReportType Xml | Select-String -Pattern "<SecurityGroup>" | Measure-Object

        # Überprüfen, ob keine Sicherheitsfilter vorhanden sind
        if ($securityFilters.Count -eq 0) {
            $gposWithoutSecurityFilter += $gpo
        }
    }

    # Ausgabe der GPOs ohne Sicherheitsfilter
    foreach ($gpo in $gposWithoutSecurityFilter) {
        Write-Output "GPO-SecurityFilter '$($gpo.DisplayName)';(ID: $($gpo.Id))"
    }
}

# Aufruf der Funktion
Get-GPOsWithoutSecurityFilter

In diesem Fall bitte ich allerdings eindringlich zu beachten, dass die Regelung auch über Security-ACLs und spezielleren Rechten umgesetzt werden kann. Eine direkte Löschung aufgrund eines fehlenden Sicherheitsfilters empfehle ich definitiv nicht. Über den Reiter „Security“ sollten andere Berechtigungen zur Verteilung geprüft werden.

Client, Windows 10, Windows 11, Windows Server, Windows Server 2019, Windows Server 2022

Gruppenrichtlinien-Bereinigung

Posted on 21. Januar 202519. Januar 2025 By Daniel Lensing Keine Kommentare zu Gruppenrichtlinien-Bereinigung

Oft werden Gruppenrichtlinien erstellt und auch modifiziert, wenn es Anforderungen gibt. Allerdings altern diese auch teilweise sehr schlecht in der Verzeichnisstruktur. Aus diesem Grund habe ich 2 Skripte erstellt, welche einen kleinen Überblick entsprechende Themen berücksichtigen:

Nicht verlinkte Gruppenrichtlinien

Gruppenrichtlinien werden an der Struktur der Domäne zur Verfügung bereitgestellt. Wenn man in dieser Struktur entsprechende Löschung, ob per Kontextmenü oder Taste „ENTF“, wird nur die Verlinkung gelöscht. Die Gruppenrichtlinie selbst bleibt in der Domäne vorhanden.

Mit diesem Skript können nicht mehr verlinkte Gruppenrichtlinien aufgelistet:

# Importieren des GroupPolicy-Moduls
Import-Module GroupPolicy

# Funktion zum Finden nicht verlinkter GPOs
function Get-UnlinkedGPOs {
    # Abrufen aller GPOs
    $allGPOs = Get-GPO -All

    # Liste zum Speichern nicht verlinkter GPOs
    $unlinkedGPOs = @()

    # Schleife durch alle GPOs
    foreach ($gpo in $allGPOs) {
        # Abrufen aller Links für das aktuelle GPO
        $links = Get-GPOLink -Guid $gpo.Id

        # Überprüfen, ob keine Links existieren
        if ($links.Count -eq 0) {
            # Hinzufügen des GPO zur Liste nicht verlinkter GPOs
            $unlinkedGPOs += $gpo
        }
    }

    # Ausgabe der nicht verlinkten GPOs
    foreach ($unlinkedGPO in $unlinkedGPOs) {
        Write-Output "GPO '$($unlinkedGPO.DisplayName)';(ID: $($unlinkedGPO.Id));(ModifyDate: $($unlinkedGPO.whenmodified))"
    }
}

# Aufruf der Funktion
Get-UnlinkedGPOs

Deaktivierte Gruppenrichtlinien

Gruppenrichtlinien sind in zwei Teilen aufgeteilt: Benutzer und Computer. Diese können allerdings auch beide deaktiviert werden. Somit ist eine Gruppenrichtlinie verlinkt, aber nicht mehr in der Verteilung. Diese Funktion kann zum Beispiel in Rollouts genutzt werden, um verschiedene Versionen auszutauschen.

Mit diesem Skript können deaktivierte Gruppenrichtlinien in der Domäne identifiziert werden.

# Importieren des GroupPolicy-Moduls
Import-Module GroupPolicy

# Funktion zum Finden von verlinkten GPOs, die deaktiviert sind
function Get-DisabledLinkedGPOs {
    # Abrufen aller GPOs
    $allGPOs = Get-GPO -All

    # Liste zum Speichern deaktivierter, verlinkter GPOs
    $disabledLinkedGPOs = @()

    # Schleife durch alle GPOs
    foreach ($gpo in $allGPOs) {
        # Überprüfen, ob das GPO deaktiviert ist
        if ($gpo.GpoStatus -eq "AllSettingsDisabled") {
            # Abrufen aller Links für das aktuelle GPO
            $links = Get-GPOLink -Guid $gpo.Id

            # Überprüfen, ob Links existieren
            if ($links.Count -gt 0) {
                # Hinzufügen des GPO zur Liste deaktivierter, verlinkter GPOs
                $disabledLinkedGPOs += $gpo
            }
        }
    }

    # Ausgabe der deaktivierten, verlinkten GPOs
    foreach ($disabledLinkedGPO in $disabledLinkedGPOs) {
        Write-Output "GPO '$($disabledLinkedGPO.DisplayName)' (ID: $($disabledLinkedGPO.Id));(ModifyDate: $($unlinkedGPO.whenmodified))"
    }
}

# Aufruf der Funktion
Get-DisabledLinkedGPOs

Client, Leben Beruf und Gesundheit, Powershell, Server, Windows 10, Windows 11, Windows Server 2019, Windows Server 2022

Termine des Microsoft Patchdays 2025

Posted on 15. November 202428. April 2025 By Daniel Lensing 5 Kommentare zu Termine des Microsoft Patchdays 2025
Weißer Schriftzug „UPDATE“ auf schwarzem Hintergrund
Bild by Markus Winkler – https://www.instagram.com/m23

Im Standard veröffentlicht der Hersteller Microsoft an jedem 2ten Dienstag im Monat seine Aktualisierungen. Durch diese Vorgabe entstehen folgende Termine für das Jahr 2025:

14. JanuarRegulärer Patchday
11. FebruarRegulärer Patchday
11. MärzRegulärer Patchday
08. AprilRegulärer Patchday für Windows Server 2025
Baseline-Patchday für Windows 11 Enterprise
13. MaiRegulärer Patchday für Windows Server 2025
Hot-Patchday für Windows 11 Enterprise
10. JuniRegulärer Patchday für Windows Server 2025
Hot-Patchday für Windows 11 Enterprise
08. JuliBaseline-Patchday für
Windows Server 2025 & Windows 11 Enterprise
12. AugustHot-Patchday
09. SeptemberHot-Patchday
14. OktoberBaseline-Patchday
11. NovemberHot-Patchday
09. DezemberHot-Patchday

Hotpatching von Microsoft ist eine Methode, um Updates auf Windows Server sowie Windows Enterprise-Clients zu installieren, ohne dass ein Neustart erforderlich ist. Dabei wird der im Speicher befindliche Code laufender Prozesse gepatcht, ohne dass der Prozess neu gestartet werden muss.

Hotpatching ist besonders nützlich für Unternehmen, die eine hohe Verfügbarkeit ihrer Server benötigen und Ausfallzeiten minimieren möchten.

Bei allen anderen Systemen werden alle Patchdays inkl. der erforderlichen Neustarts durchgeführt.

Arbeitszimmer, Office, Office 365, Patchday+Updates, Windows 10, Windows 11, Windows Server 2019, Windows Server 2022

Powershell: Mastodon-Trööt generieren

Posted on 29. Dezember 202328. Dezember 2023 By Daniel Lensing Keine Kommentare zu Powershell: Mastodon-Trööt generieren

Die API von Mastodon lässt sich einfach per Powershell ansprechend. Darüber können sehr einfach Nachrichten versandt werden. Anbei ein Beispiel-Skript:

##### Manual to Create Applikation / Anleitung zur Applikationserstellung #####
# EN: Generate mastodon application for API access
# DE: Mastodon-Anwendung für API-Zugang generieren

# EN: Preferences - Development - New Application
# DE: Einstellungen - Entwicklung - Neue Anwendung

# EN: Set Application name - Deselect read & follow - Select write:statuses - Submit
# DE: SApplikationsmane setzen - read & follow abwählen - write:statuses auswählen - Speichern

# EN: Open the saved application and copy the API key. Paste this into the script.
# DE:  Die gespeicherte Applikation öffnen und den API-Key kopieren. Diesen in das Skript einfügen.
###############################################################################


### Nachrichten-Text
$message = 'Das ist ein Test-Trööt!'

#### Troot-Status
# Parameters: public - unlisted - private
$status ="public"


########################################
### Static entries / Statische Einträge:
########################################
$Hostname = 'domain.social'
$token = 'TokenID'

###################################
### Do not modify / Nicht verändern
###################################
$url = "https://$hostname/api/v1/statuses"

$headers = @{
    "Authorization" = "Bearer $($token)"
}
$body = @{
    status  = $message
    visibility = $status
}
Invoke-WebRequest -Uri $url -Method Post -Headers $headers -Body $body

Im Skript muss der Hostname sowie die TokenID ausgetauscht werden. Entsprechend kann der Test-Trööt versendet werden. Dadurch kann zum Beispiel eine Automatisierung generiert werden.

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

Seitennummerierung der Beiträge

Vorherige 1 2 3 4 … 24 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