Pe o serie de servere pe care lucrez, permisiunile pentru folderele de partajare au devenit aglomerate cu permisiuni directe pentru unii dintre tehnicienii noștri, deoarece trebuie să preia proprietatea. Mi-am dat seama cum să rezolv problema de proprietate, astfel încât să nu se mai întâmple, dar sunt blocat cu curățarea acestor permisiuni. din pacate cand rulez aceasta comanda nu se intampla nimic nici macar o eroare. Bănuiesc că este o eroare logică de un fel din partea mea, dar nu o pot identifica. Orice ajutor ar fi apreciat.
# $vData este calea rădăcină
Obține-element $vData | foreach { $_ ; $_ | Get-ChildItem -directory -Force -Recurse }| foreach { $currentDir = $_; $acl = ($_ | Get-Acl).Acces; $ID-uri = $acl | selectați referința de identitate; foreach ($ID în $ID-uri) { if (($ID.ToString()).endswith('-admin')) { $acesToRemove = $acl | unde{ $_.IsInherited -eq $false -și $_.IdentityReference -eq $ID }; $acl.RemoveAccessRuleAll($acesToRemove); Set-Acl -AclObject $acl $currentDir.ToString(); } } }
deoarece este o linie de 1, l-am împărțit mai jos pentru ușurință de citit.
Get-Item $vData |`
foreach {`
$_ ; $_ | Get-ChildItem -directory -Force -Recurse `
}`
| foreach {`
$currentDir = $_;`
$acl = ($_ | Get-Acl).Acces; `
$ID-uri = $acl | selectați identityreference ;`
foreach ($ID în $ID-uri) { `
if (($ID.ToString()).endswith('-admin')) {`
$acesToRemove = $acl | unde{ $_.IsInherited -eq $false -și $_.IdentityReference -eq $ID };`
$acl.RemoveAccessRuleAll($acesToRemove); `
Set-Acl -AclObject $acl $currentDir.ToString(); `
}`
}`
}
codul pentru a elimina permisiunile se bazează pe codul pe care l-am găsit aici
Eliminați complet un utilizator din ACL folosind PowerShell