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 2022

AD Webservices: Einschränkung bei Powershell

Posted on 22. April 202521. April 2025 By Daniel Lensing Keine Kommentare zu AD Webservices: Einschränkung bei Powershell

Die Einstellung MaxGroupOrMemberEntries in Active Directory Web Services (ADWS) legt die maximale Anzahl von Gruppenmitgliedern fest, die von bestimmten PowerShell-Cmdlets abgerufen werden können. Standardmäßig ist dieser Wert auf 5000 begrenzt.

Dieses ist mir aufgefallen als ich eine Abfrage mit dem CMDlet „Get-ADGroupMember“ abfragen wollte. Die Gruppe hatte eine Mitgliederanzahl größer den 5000.

Die Einschränkung gilt für die folgenden CMDlets:

  • Get-ADGroupMember
    • Wird verwendet, um Mitglieder einer Gruppe abzurufen. Die Anzahl der zurĂĽckgegebenen Mitglieder ist durch diesen Eintrag begrenzt.
  • Get-ADPrincipalGroupMembership
    • Dieses Cmdlet listet alle Gruppenmitgliedschaften eines Benutzers oder Computers auf.
  • Get-ADAccountAuthorizationGroup
    • Zeigt die Sicherheitsgruppen an, die fĂĽr die Autorisierung eines Benutzerkontos verwendet werden.

Es gibt 2 Varianten, dieses Problem zu umgehen. Die einfachste Möglichkeit ist die Nutzung des CMDlets „Get-ADGroup“, die mit dem ExtensionProperty „Member“ genutzt wird und einer Pipe die Daten weiterverarbeitet.

Eine zweite Variante ist die Erweiterung im Active Directory Webservice (ADWS). Dazu muss der Eintrag

<add key="MaxGroupOrMemberEntries" value="20000"/>

in der Datei C:\Windows\ADWS\Microsoft.ActiveDirectory.WebServices.exe.config hinzugefügt werden. Dieses ist mit einem Texteditor möglich. Dieses muss im Bereich der <appSettings> geschehen. Um die Änderung zu übernehmen, muss der Dienst neugestartet werden.

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

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 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 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 (238)
    • Android (8)
    • Fedora (Linux) (5)
    • iOS (6)
    • Mac OS X (6)
    • Peripherie (5)
    • Ubuntu (Linux) (9)
    • Windows 10 (62)
    • Windows 11 (24)
    • 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 (214)
    • #t2dhero (57)
    • Arbeitszimmer (37)
    • Audio (22)
    • Film / Kino (7)
    • Gedanken (81)
    • Gesundheit (37)
    • Internet (7)
    • Lebensmittel & Essen (22)
    • Lesestoff (19)
    • Sport (11)
    • Veranstaltung (3)
  • Lehren & Lernen (49)
    • Forschung (1)
    • Konferenzen (3)
    • Präsentation (4)
    • Zertifizierung (42)
  • Programme (328)
    • Android-Apps (28)
    • Eigene Tools (12)
    • iOS-Apps (7)
    • Office (87)
    • Patchday+Updates (75)
    • Software (151)
    • Spiele (3)
    • Windows Phone-Apps (2)
  • Programmierung (93)
    • AutoIT (1)
    • KiXtart (1)
    • PHP (3)
    • Power Automate (1)
    • Powershell (62)
    • VB.NET (10)
    • VBA (10)
    • VBS (10)
  • Server (160)
    • 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 (19)
    • Windows Server 2022 (16)
    • Windows Server 2025 (9)
  • 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