Bonjour

afin de faire réaffecter des utilisateurs de l'AD sur les répertoires Personnel avec les bons Droits
je doit parcourir le répertoire \\serveur\USERS et casser les droits pour bien les remettre

les droits au niveau des répertoires sont fait par héritages
en le faisant a la main cela fonctionne mais sur 6000 répertoires cela est très fastidieux

mon problème est que le propriétaire du répertoire initiale $proprio.Owner n'est pas récupérer mais que mon compte admin apparait comme étant le propriétaire empêchant le propriétaire légitime de saisir quoi que ce soit

exemple

lvl1 = trucmuche
lvl2 = trucmuche
lvl 3+ = moi

voici le code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Import-Module -Name NTFSSecurity

$Repertoire_Depart="\\serveur\USERS"

$Liste_Objet_Niv1 = Get-ChildItem2 -Path $Repertoire_Depart -Directory

forEach ($Dossier in $Liste_Objet_Niv1.fullname) {
    $Dossier = $Liste_Objet_Niv1.FullName

    $Error_acces = $false

    try {
       $proprio = Get-NTFSOwner -Path $Dossier
    } catch { $Error_acces = $true }
    If ($Error_acces -eq $false) {
        $Objet_Dossier = Get-Item2 $Dossier

        Write "*********************************************************************"
        Write "Traitement du Dossier $Objet_Dossier"
        # Attribution des Droit a l'Administrateur

        Write-host "Attribution de l'utilisateur Administrateur"
        Set-NTFSOwner -Account 'BUILTIN\Administrateurs' -Path $Objet_Dossier.FullName
        Get-ChildItem2 $Objet_Dossier -Recurse | Select-Object fullname | Set-NTFSOwner -Account 'BUILTIN\Administrateurs'
        
        # Suppression des Héritages
        Write-host "Suppression des Héritages"
        Disable-NTFSAccessInheritance -Path $Objet_Dossier.FullName -RemoveInheritedAccessRules
        Disable-NTFSAuditInheritance -Path $Objet_Dossier.FullName -RemoveInheritedAccessRules
      
        # Ajout acces Pour Admin
        Write-host "Ajout acces Pour Admin"
        Add-NTFSAccess -Path $Objet_Dossier.FullName -Account 'BUILTIN\Administrateurs' -AccessRights FullControl -AppliesTo ThisFolderSubfoldersAndFiles 
        Get-ChildItem2 $Objet_Dossier -Recurse | Select-Object fullname | Add-NTFSAccess -Account 'BUILTIN\Administrateurs' -AccessRights FullControl -AppliesTo ThisFolderSubfoldersAndFiles
  
      # Réaffectation Du Propriétaire
        Write-host "Réaffectation Du Propriétaire"
        Get-Item2 $Objet_Dossier | Select-Object fullname | Set-NTFSOwner -Account $proprio.Owner
        Get-ChildItem2 $Objet_Dossier -Recurse -Directory | Select-Object fullname | Set-NTFSOwner -Account $proprio.Owner
        Get-ChildItem2 $Objet_Dossier -Recurse -File | Select-Object fullname | Set-NTFSOwner -Account $proprio.Owner

        # Rétablissement de l'héritage
        Write-host "Rétablissement de l'héritage"
        Enable-NTFSAccessInheritance -Path $Objet_Dossier.FullName -RemoveExplicitAccessRules 
        Enable-NTFSAuditInheritance -Path $Objet_Dossier.FullName -RemoveExplicitAccessRules 
        Get-ChildItem2 $Objet_Dossier -Recurse -Directory | Select-Object fullname | Enable-NTFSAccessInheritance -RemoveExplicitAccessRules
        Get-ChildItem2 $Objet_Dossier -Recurse -Directory | Select-Object fullname | Enable-NTFSAuditInheritance -RemoveExplicitAccessRules
        Get-ChildItem2 $Objet_Dossier -Recurse -File | Select-Object fullname | Enable-NTFSAccessInheritance -RemoveExplicitAccessRules
        Get-ChildItem2 $Objet_Dossier -Recurse -File | Select-Object fullname | Enable-NTFSAuditInheritance -RemoveExplicitAccessRules
    }
}
merci pour votre aide