45 lines
1.6 KiB
PowerShell
45 lines
1.6 KiB
PowerShell
<#
|
|
.SYNOPSIS
|
|
Kilistázza egy megadott AD felhasználó összes csoporttagságát.
|
|
#>
|
|
|
|
param (
|
|
[Parameter(Mandatory=$true, HelpMessage="Add meg a felhasználó nevét (sAMAccountName)")]
|
|
[string]$UserName
|
|
)
|
|
|
|
# Ellenőrizzük, hogy az Active Directory modul elérhető-e
|
|
if (!(Get-Module -ListAvailable ActiveDirectory)) {
|
|
Write-Error "Az 'ActiveDirectory' modul nem található. Kérlek telepítsd az RSAT eszközt!"
|
|
return
|
|
}
|
|
|
|
# Importáljuk a modult, ha még nincs betöltve
|
|
if (!(Get-Module ActiveDirectory)) {
|
|
Import-Module ActiveDirectory
|
|
}
|
|
|
|
try {
|
|
# Felhasználó ellenőrzése
|
|
$user = Get-ADUser -Identity $UserName -ErrorAction Stop
|
|
|
|
Write-Host "`nLekérdezés folyamatban: $($user.Name) ($UserName)..." -ForegroundColor Cyan
|
|
|
|
# Csoportok lekérése (Get-ADPrincipalGroupMembership kezeli a rekurziót is)
|
|
$groups = Get-ADPrincipalGroupMembership -Identity $UserName | Select-Object Name, Category, GroupScope, DistinguishedName | Sort-Object Name
|
|
|
|
if ($groups) {
|
|
Write-Host "Talált csoportok száma: $($groups.Count)`n" -ForegroundColor Green
|
|
$groups | Format-Table Name, Category, GroupScope -AutoSize
|
|
} else {
|
|
Write-Host "A felhasználó egyetlen csoportnak sem tagja (kivéve a Primary Group-ot)." -ForegroundColor Yellow
|
|
}
|
|
|
|
} catch [Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException] {
|
|
Write-Host "HIBA: A(z) '$UserName' nevű felhasználó nem található az Active Directory-ban!" -ForegroundColor Red
|
|
} catch {
|
|
Write-Host "Váratlan hiba történt: $($_.Exception.Message)" -ForegroundColor Red
|
|
}
|
|
|
|
Write-Host "`nKész." -ForegroundColor Gray
|