Einblicke in (Security)-Themen ausm tiefen Wald

Schlagwort: active directory

Entfernen aller AD-Gruppenzugehörigkeiten bis auf „Domain Users“

Oftmals werden bei Offboarding-Prozessen die Nutzer lediglich deaktiviert (vorübergehend), bevor sie endgültig gelöscht werden. Aus Sicherheitsgründen bietet es sich daher an, alle AD-Gruppenzugehörigkeiten in einem Rutsch zu entfernen. Dazu kann folgendes Script dienen:

# Name des betroffenen Benutzers
$sAMAccountName = "user-xyz"

# Importiere das AD-Modul (falls nicht bereits geladen)
Import-Module ActiveDirectory

try {
    # Hole den Benutzer und seine Gruppen (DistinguishedNames)
    $user = Get-ADUser -Identity $sAMAccountName -Properties MemberOf
    
    # Filtere die Gruppen: Wir ignorieren die "Domain Users" Gruppe automatisch,
    # da diese als 'PrimaryGroup' im AD anders gehandhabt wird und nicht im Attribut 'MemberOf' steht.
    $groups = $user.MemberOf

    if ($groups) {
        #Write-Host "Entferne $($groups.Count) Gruppen von Benutzer $sAMAccountName..." -ForegroundColor Cyan
        
        # Entferne den Benutzer aus allen gefundenen Gruppen
        # -Confirm:$false unterdrückt die Bestätigungsaufforderung für jede einzelne Gruppe
        Remove-ADPrincipalGroupMembership -Identity $sAMAccountName -MemberOf $groups -Confirm:$false
        
        #Write-Host "Erfolgreich: Alle Gruppen außer 'Domänen-Benutzer' wurden entfernt." -ForegroundColor Green
    } else {
        #Write-Host "Der Benutzer ist bereits in keiner weiteren Gruppe außer 'Domänen-Benutzer'." -ForegroundColor Yellow
    }
} catch {
    #Write-Error "Fehler beim Bearbeiten des Benutzers $sAMAccountName: $($_.Exception.Message)"
}

Abgelaufene AD-Konten in Entra ID

Wer ein on-premise AD betreibt, das in die Cloud synct, also sich mit dem (früheren AzureAD) Entra ID verschmelzt, der sollte tunlichst darauf achten, dass abgelaufene Konten aus dem on-premise AD dann plötzlich wieder nutzbar sind im Entra ID.

Dieser Zusammenhang besteht, wenn das Attribut expiration-date gefüllt ist, aber der Account weiterhin auf „enabled“ steht. Da es im Entra ID kein expiration-date gibt, werden also bei einem Sync-Vorgang geglaubte deaktivierte Konten „plötzlich“ wieder aktiv.

Um hier eine Lösung zu finden, sollten per PowerShell alle Konten, die ein Ablaufdatum (expiration-date) in der Vergangenheit haben, tunlichst deaktiviert werden. Das geht wie folgt:

Search-ADAccount -AccountExpired -UsersOnly

Hiermit kann man sich die abgelaufenen Konten heraussuchen und manuell prüfen, ob diese weiterhin auf „enabled“ stehen.

Ist man sich sicher, dass all diese Account auch deaktiviert werden können/sollten, dann pipt man das Ergebnis an den Befehl disable-adaccount, wie folgt:

Search-ADAccount -AccountExpired -UsersOnly | Disable-ADAccount

Man kann natürlich noch tiefergehend graben, indem man folgende Suche verwendet:

Get-ADUser -Filter {Enabled -eq $true} -properties AccountExpirationDate | Where-Object{$_.AccountExpirationDate -lt (Get-Date) -and $_.AccountExpirationDate -ne $null} | select-object SamAccountName, AccountExpirationDate

Auch hier kann man sich dann mittels Piping das Disablen hinten dran hängen.

An welchem DC Server bin ich angemeldet?

Die Anmeldung eines Clients am Active Directory findet sich in der Umgebungsvariable %logonserver% auf der Konsole:

echo %logonserver%

Präsentiert von WordPress & Theme erstellt von Anders Norén