From 5f4dcbc554de314b648c4e5c5f734f602b256af0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0t=C4=9Bp=C3=A1n?= Date: Sun, 20 Oct 2024 12:34:25 +0200 Subject: [PATCH] =?UTF-8?q?P=C5=99id=C3=A1n=C3=AD=20skriptu=20Find-EmptySe?= =?UTF-8?q?curityGroups.ps1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Find-EmptySecurityGroups.ps1 | 61 ++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 Find-EmptySecurityGroups.ps1 diff --git a/Find-EmptySecurityGroups.ps1 b/Find-EmptySecurityGroups.ps1 new file mode 100644 index 0000000..b8b5276 --- /dev/null +++ b/Find-EmptySecurityGroups.ps1 @@ -0,0 +1,61 @@ +<# +.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." +} \ No newline at end of file