Question
Supprimer les SID orphelins des droits des dossiers
- SaMmMy
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 2 ans 9 mois - il y a 2 ans 9 mois #31777
par SaMmMy
Supprimer les SID orphelins des droits des dossiers a été créé par SaMmMy
Iaroana à tou(te)s,
J'essaie d'enlever les comptes orphelins des droits sur un (ou des) dossier(s) via une console PowerShell lancée en Admin.
Lorsque je fais :J'obtiens :
Mais lorsque je fais :Le compte SID est toujours présent,J'obtiens toujours :
Ma question est : qu'ai-je loupé pour que les droits ne soient pas modifiés ?
Merci à vous…
J'essaie d'enlever les comptes orphelins des droits sur un (ou des) dossier(s) via une console PowerShell lancée en Admin.
Lorsque je fais :
dir -Recurse -Path E:\Datas\GAZ\ | Get-NTFSOrphanedAccess | Select-Object {($_.Account,$_.FullName,$_.InheritanceEnabled)}
($_.Account,$_.FullName,$_.InheritanceEnabled)
----------------------------------------------
{S-1-5-21-912009189-124610182-620655208-5332, E:\Datas\GAZ\Suivi Bouteilles Gaz SAV.xlsx, True}
Mais lorsque je fais :
dir -Recurse -Path E:\Datas\Gse\ | Get-NTFSOrphanedAccess | Remove-NTFSAccess -Account {($_.Account)} -Path {($_.FullName)} -AccessRights Modify
dir -Recurse -Path E:\Datas\GAZ\ | Get-NTFSOrphanedAccess | Select-Object {($_.Account,$_.FullName,$_.InheritanceEnabled)}
($_.Account,$_.FullName,$_.InheritanceEnabled)
----------------------------------------------
{S-1-5-21-912009189-124610182-620655208-5332, E:\Datas\GAZ\Suivi Bouteilles Gaz SAV.xlsx, True}
Ma question est : qu'ai-je loupé pour que les droits ne soient pas modifiés ?
Merci à vous…
Dernière édition: il y a 2 ans 9 mois par SaMmMy.
Connexion ou Créer un compte pour participer à la conversation.
- SaMmMy
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 2 ans 9 mois #31778
par SaMmMy
Réponse de SaMmMy sur le sujet Supprimer les SID orphelins des droits des dossiers
Comme il y a plusieurs façons de procéder en informatique, en fouinant sur la toile, j'ai trouvé ces commandes pour faire des tests à la main :Elles ne génèrent aucune erreur mais les droits restent inchangés.
Ça me semblait pourtant simple à faire.
$acl = Get-Acl "E:\Datas\GAZ\Suivi Bouteilles Gaz SAV.xlsx"
$usersid = New-Object System.Security.Principal.SecurityIdentifier ("S-1-5-21-912009189-124610182-620655208-5332")
$acl.PurgeAccessRules($usersid)
$acl | Set-Acl "E:\Datas\GAZ\Suivi Bouteilles Gaz SAV.xlsx"
Ça me semblait pourtant simple à faire.
Connexion ou Créer un compte pour participer à la conversation.
- Bruce
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 17
- Remerciements reçus 0
il y a 2 ans 3 mois #32534
par Bruce
Réponse de Bruce sur le sujet Supprimer les SID orphelins des droits des dossiers
Bonjour,
Je voulais faire la meme chose depuis longtemps et j'ai trouvé la solution en m'inspirant de votre post et des recherches sur le web.
Voici mon code, il permet de sélectionner quels SID vous voulez supprimer.
Clear-Host
# Création d'un tableau
$SID_Orph = @()
# Dossier a scanner
$Path = "\\monserveur\data\public"
$PathFolders = Get-ChildItem -Path $Path -Directory
try
{
foreach ($folder in $PathFolders)
{
$FullPath = $Path + "\" + $folder.Name
$acl = Get-Acl -Path $FullPath
foreach($acc in $acl.access )
{
$value = $acc.IdentityReference.Value
if($value -match "S-1-5-*")
{
$SID_Orph += New-Object PSObject -Property @{
Chemin = $FullPath
Valeur = $value}
Write-Host -ForegroundColor Red -BackgroundColor Yellow "SID orphelin: $value - Dossier: $FullPath"
}
}
}
$selection = $SID_Orph | Out-GridView -Title "Dossiers avec SID oprphelins" -OutputMode Multiple |sort -Property Chemin
foreach ($sel in $selection)
{
$seldir = $sel.chemin
$acl = Get-Acl -Path $sel.chemin
foreach($acc in $acl.access )
{
$value = $acc.IdentityReference.Value
if($value -match $sel.Valeur)
{
$ACL.RemoveAccessRule($acc) | Out-Null
Set-Acl -Path $sel.chemin -AclObject $acl -ErrorAction Stop
Write-Host "Suppression SID orphelin: $value - Dossier: $seldir"
}
}
}
}
catch
{
Write-Error $Error
}
Write-Host -ForegroundColor Green -BackgroundColor Black "FIN"
Je voulais faire la meme chose depuis longtemps et j'ai trouvé la solution en m'inspirant de votre post et des recherches sur le web.
Voici mon code, il permet de sélectionner quels SID vous voulez supprimer.
Clear-Host
# Création d'un tableau
$SID_Orph = @()
# Dossier a scanner
$Path = "\\monserveur\data\public"
$PathFolders = Get-ChildItem -Path $Path -Directory
try
{
foreach ($folder in $PathFolders)
{
$FullPath = $Path + "\" + $folder.Name
$acl = Get-Acl -Path $FullPath
foreach($acc in $acl.access )
{
$value = $acc.IdentityReference.Value
if($value -match "S-1-5-*")
{
$SID_Orph += New-Object PSObject -Property @{
Chemin = $FullPath
Valeur = $value}
Write-Host -ForegroundColor Red -BackgroundColor Yellow "SID orphelin: $value - Dossier: $FullPath"
}
}
}
$selection = $SID_Orph | Out-GridView -Title "Dossiers avec SID oprphelins" -OutputMode Multiple |sort -Property Chemin
foreach ($sel in $selection)
{
$seldir = $sel.chemin
$acl = Get-Acl -Path $sel.chemin
foreach($acc in $acl.access )
{
$value = $acc.IdentityReference.Value
if($value -match $sel.Valeur)
{
$ACL.RemoveAccessRule($acc) | Out-Null
Set-Acl -Path $sel.chemin -AclObject $acl -ErrorAction Stop
Write-Host "Suppression SID orphelin: $value - Dossier: $seldir"
}
}
}
}
catch
{
Write-Error $Error
}
Write-Host -ForegroundColor Green -BackgroundColor Black "FIN"
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.103 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Supprimer les SID orphelins des droits des dossiers