2026-07-10

Alt öğelerin sahibini toplu değiştir

Bir klasörün altındaki tüm alt klasörler ve dosyaların sahibini, üst klasörün sahibi ile değiştirmek istiyorum. Aşağıdaki gibi bir betik işe yaradı.

param(
    [Parameter(Mandatory=$true)][string]$Path
)

$acl = Get-Acl -Path $Path

$cevap = Read-Host "$Path ve altindaki dosya ve klasorlerin sahibini $($acl.Owner) olarak degistirelim mi? (e/H)"

if ($cevap -eq "e" -or $cevap -eq "E") {
    Get-ChildItem -Path $Path -Recurse | ForEach-Object {
        try {
            $item = $_
            $itemAcl = Get-Acl -Path $item.FullName -ErrorAction Stop
            $itemAcl.SetOwner([System.Security.Principal.NTAccount]$acl.Owner)
            Set-Acl -Path $item.FullName -AclObject $itemAcl -ErrorAction Stop
            Write-Host "Tamam " -ForegroundColor Green -NoNewline
            Write-Host $item.FullName
        }
        catch {
            Write-Host "Hata  " -ForegroundColor Red -NoNewline
            Write-Host $item.FullName
        }
    }
} else {
    Write-Host "Islem iptal edildi."
}

 

Hiç yorum yok: