<# .SYNOPSIS Tento skript vypíše všechny bezpečnostní skupiny v Active Directory, které nemají žádné členy. .DESCRIPTION Tento PowerShell skript využívá Active Directory cmdlety pro získání seznamu všech bezpečnostních skupin a následně kontroluje, zda skupiny neobsahují členy. Pokud skupina nemá žádné členy, její název bude vypsán do konzole. .PARAMETER None Skript nevyžaduje žádné vstupní parametry. .EXAMPLE .\Find-EmptySecurityGroups.ps1 Skript zobrazí všechny prázdné bezpečnostní skupiny v Active Directory. .EXAMPLE .\Find-EmptySecurityGroups.ps1 | Export-Csv -Path .\Export_EmptySecurityGroups.csv -NoTypeInformation -Encoding UTF8 Export všechn prázdných bezpečnostních skupiny v Active Directory do CSV. .NOTES Autor: Petr Štěpán Datum vytvoření: 20.10.2024 Verze: 1.0 .LINK https://git.totalservice.cz/public/AD-Tools #> # Vyžaduje modul Active Directory Import-Module ActiveDirectory # Inicializace prázdného pole pro ukládání prázdných skupin $emptyGroups = @() # Inicializace počátečního stavu progress baru $counter = 0 # Získání všech bezpečnostních skupin v Active Directory $securityGroups = Get-ADGroup -Filter {GroupCategory -eq 'Security'} # Procházení každé skupiny a kontrola, zda nemá žádné členy foreach ($group in $securityGroups) { $counter++ Write-Progress -Activity "Kontrola skupiny $($Group.Name)" -Status "Zpracovávám $counter z $($securityGroups.Count)" -PercentComplete (($counter / $securityGroups.Count) * 100) $members = Get-ADGroupMember -Identity $group.DistinguishedName -ErrorAction SilentlyContinue if ($members.Count -eq 0) { # Uložení informace o prázdné skupině do PSCustomObject $emptyGroups += [PSCustomObject]@{ GroupName = $group.Name CanonicalName = $group.CanonicalName DistinguishedName = $group.DistinguishedName } } } # Pokud existují prázdné skupiny, vypište je if ($emptyGroups.Count -gt 0) { $emptyGroups } else { Write-Host "Žádné prázdné bezpečnostní skupiny nebyly nalezeny." }