ในเซิร์ฟเวอร์จำนวนหนึ่งที่ฉันทำงานอยู่ สิทธิ์การแชร์โฟลเดอร์นั้นยุ่งเหยิงกับการอนุญาตโดยตรงสำหรับเทคโนโลยีบางอย่างของเรา เนื่องจากพวกเขาจำเป็นต้องเป็นเจ้าของ ฉันได้ทราบวิธีแก้ไขปัญหาความเป็นเจ้าของแล้ว ดังนั้นปัญหาจะไม่เกิดขึ้นอีกต่อไป แต่ฉันติดอยู่กับการล้างสิทธิ์เหล่านี้ น่าเสียดายที่เมื่อฉันเรียกใช้คำสั่งนี้ ไม่มีอะไรเกิดขึ้นแม้แต่ข้อผิดพลาด ฉันเดาว่ามันเป็นข้อผิดพลาดทางตรรกะในส่วนของฉัน แต่ฉันไม่สามารถมองเห็นได้ ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม
# $vData เป็นเส้นทางรูท
รับรายการ $vData | แต่ละคน { $_ ; $_ | Get-ChildItem -directory -Force -Recurse }| แต่ละ { $currentDir = $_; $acl = ($_ | รับ Acl).Access; $IDs = $acl | เลือกการอ้างอิงตัวตน ; foreach ($ID ใน $IDs) { if (($ID.ToString()).endswith('-admin')) { $acesToRemove = $acl | โดยที่{ $_.IsInherited -eq $false -และ $_.IdentityReference -eq $ID }; $acl.RemoveAccessRuleAll($acesToRemove); ชุด-Acl -AclObject $acl $currentDir.ToString(); } } }
เนื่องจากเป็น 1 ซับฉันจึงแยกไว้ด้านล่างเพื่อความสะดวกในการอ่าน
รับรายการ $vData |`
foreach {`
$_ ; $_ | Get-ChildItem -directory -Force -Recurse `
}`
| foreach {`
$currentDir = $_;`
$acl = ($_ | รับ Acl).Access; `
$IDs = $acl | เลือกข้อมูลอ้างอิง ;`
foreach ($ID ใน $IDs) { `
ถ้า (($ID.ToString()).endswith('-admin')) {`
$acesToRemove = $acl | โดยที่{ $_.IsInherited -eq $false -and $_.IdentityReference -eq $ID };'
$acl.RemoveAccessRuleAll($acesToRemove); `
ชุด-Acl -AclObject $acl $currentDir.ToString(); `
}`
}`
}
รหัสเพื่อลบการอนุญาตนั้นขึ้นอยู่กับรหัสที่ฉันพบที่นี่
ลบผู้ใช้ออกจาก ACL อย่างสมบูรณ์โดยใช้ PowerShell