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: Windows Server 2019

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

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 3 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

Termine des Microsoft Patchdays 2024

Posted on 1. Dezember 202326. April 2025 By Daniel Lensing 2 Kommentare zu Termine des Microsoft Patchdays 2024
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 2024:

  • 09. Januar
  • 13. Februar
  • 12. MĂ€rz
  • 09. April
  • 14. Mai
  • 11. Juni
  • 09. Juli
  • 13. August
  • 10. September
  • 08. Oktober
  • 12. November
  • 10. Dezember
Client, Exchange Server, Server, Windows 10, Windows 11, Windows Server, Windows Server 2016, Windows Server 2019, Windows Server 2022

Seitennummerierung der BeitrÀge

Vorherige 1 2 3 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 (235)
    • Android (7)
    • Fedora (Linux) (5)
    • iOS (5)
    • Mac OS X (5)
    • Peripherie (5)
    • Ubuntu (Linux) (8)
    • Windows 10 (60)
    • Windows 11 (21)
    • 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 (204)
    • #t2dhero (52)
    • Arbeitszimmer (31)
    • Audio (20)
    • Film / Kino (7)
    • Gedanken (79)
    • Gesundheit (33)
    • Internet (5)
    • Lebensmittel & Essen (22)
    • Lesestoff (18)
    • Sport (11)
    • Veranstaltung (3)
  • Lehren & Lernen (49)
    • Forschung (1)
    • Konferenzen (3)
    • PrĂ€sentation (4)
    • Zertifizierung (42)
  • Programme (325)
    • Android-Apps (27)
    • Eigene Tools (12)
    • iOS-Apps (6)
    • Office (86)
    • Patchday+Updates (74)
    • Software (150)
    • Spiele (3)
    • Windows Phone-Apps (2)
  • Programmierung (92)
    • AutoIT (1)
    • KiXtart (1)
    • PHP (3)
    • Power Automate (1)
    • Powershell (61)
    • VB.NET (10)
    • 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