Active Directory kullanıcı durumunu (aktif veya pasif) görüntüleyen ve dosya sunucusu tarafında hangi kullanıcıların hangi klasörlere hangi izinlerle erişebileceğini listeleyen bir PowerShell betiği yazalım.
Sonuçlar bulunduğunuz path de FolderAccessList.csv olarak çıkartılır.
$FolderPath = "\\file_server_ip_adresi_buraya\varsa_path$"
$FirstLevelFolders = Get-ChildItem -Path $FolderPath -Directory
foreach ($Folder in $FirstLevelFolders) {
$Acl = Get-Acl -Path $Folder.FullName
$FolderName = $Folder.Name
foreach ($Access in $Acl.Access) {
$IdentityReference = $Access.IdentityReference.Value
try {
$ADUser = Get-ADUser -Identity $IdentityReference -Properties "Enabled" -ErrorAction Stop
$ADStatus = if ($ADUser.Enabled) { "Active" } else { "Inactive" }
} catch {
try {
$ADGroup = Get-ADGroup -Identity $IdentityReference -ErrorAction Stop
$ADStatus = "Group"
} catch {
$ADStatus = "Not Found"
}
}
[PSCustomObject]@{
FolderPath = $Folder.FullName
FolderName = $FolderName
IdentityReference = $IdentityReference
AccessControlType = $Access.AccessControlType
FileSystemRights = $Access.FileSystemRights
ADStatus = $ADStatus
}
}
} | Export-Csv -Path "FolderAccessList.csv" -NoTypeInformation
Write-Host "Rapor FolderAccessList.csv dosyasına kaydedildi."
#powershell #activedirectory #script