61 lines
2.1 KiB
PowerShell
61 lines
2.1 KiB
PowerShell
<#
|
|
.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."
|
|
} |