Blog

Hier poste ich dinge zu Themen die mich beschäftigten.

Neueste 5 Einträge

  • PHP: sende Mail
  • Powershell: gruppename like finden und aktivierte user zaehlen
  • HW und SW auslesen und exportieren
  • Angeschlossene Monitore auslesen
  • bash: deepL Pro Paket MAC OS

2023-04-15

Powershell - Benutzer suchen die seit 180 nicht mehr eingeloggt waren, deaktvieren, gruppen entfernen und verschieben

Bitte stellen Sie sicher, dass Sie die Active Directory PowerShell-Module auf Ihrem System installiert haben und dass Sie über ausreichende Berechtigungen verfügen, um die erforderlichen Änderungen vorzunehmen.

# Variablen
$DaysInactive = 180
$LogFilePath = “C:InactiveUsersLog.txt”
$TargetOU = “OU=InactiveUsers,DC=yourdomain,DC=com”
$AdminAccount = (Get-ADUser -Identity $env:USERNAME).DistinguishedName

# Datum
$CurrentDate = (Get-Date)
$InactiveDate = (Get-Date).AddDays(-$DaysInactive)

# Inaktive Benutzer suchen
$InactiveUsers = Get-ADUser -Filter {LastLogonTimeStamp -lt $InactiveDate} -Properties LastLogonTimeStamp, MemberOf

# Benutzerkonten bearbeiten
foreach ($InactiveUser in $InactiveUsers) {
    # Benutzer von allen Gruppen entfernen
    $MemberOf = $InactiveUser.MemberOf
    foreach ($Group in $MemberOf) {
        Remove-ADGroupMember -Identity $Group -Members $InactiveUser -Confirm:$false
    }

    # Benutzerkonto in die OU verschieben und deaktivieren
    Move-ADObject -Identity $InactiveUser -TargetPath $TargetOU
    Disable-ADAccount -Identity $InactiveUser

    # Informationen in das Logfile schreiben
    $LogData = @”
    Benutzername: $($InactiveUser.SamAccountName)
    Vorherige Gruppenmitgliedschaften: $($MemberOf -join ‘, ‘)
    Datum der Deaktivierung: $($CurrentDate.ToString())
    Deaktiviert durch: $AdminAccount
    `r`n
“@
    Add-Content -Path $LogFilePath -Value $LogData
}

Ersetzen Sie “OU=InactiveUsers,DC=yourdomain,DC=com” durch den tatsächlichen Distinguished Name der Organizational Unit (OU), in die Sie die Benutzerkonten verschieben möchten.

Dieses Skript sucht nach Benutzerkonten, die seit 6 Monaten nicht eingeloggt waren, entfernt sie aus allen Gruppen, verschiebt sie in die angegebene OU und deaktiviert sie. Die Ergebnisse werden in das angegebene Logfile geschrieben, einschließlich der Gruppenmitgliedschaften, des Datums der Deaktivierung und des ausführenden Administratorkontos.

Admin - 10:41:26 @ Projekte, Powershell-Skripte | Kommentar hinzufügen