Trên một số máy chủ nơi tôi làm việc, các quyền đối với thư mục chia sẻ trở nên lộn xộn với các quyền trực tiếp đối với một số kỹ thuật viên của chúng tôi do họ cần có quyền sở hữu. Tôi đã tìm ra cách khắc phục vấn đề về quyền sở hữu để vấn đề này không xảy ra nữa nhưng tôi gặp khó khăn trong việc xóa các quyền này. thật không may khi tôi chạy lệnh này, không có gì xảy ra thậm chí không có lỗi. Tôi đoán đó là một lỗi logic nào đó từ phía tôi nhưng tôi không thể phát hiện ra nó. Bất kỳ trợ giúp sẽ được đánh giá cao.
# $vData là đường dẫn gốc
Nhận vật phẩm $vData | tìm kiếm { $_ ; $_ | Get-ChildItem -directory -Force -Recurse }| tìm kiếm { $currentDir = $_; $acl = ($_ | Get-Acl).Access; $ID = $acl | chọn tham chiếu nhận dạng; foreach ($ID in $IDs) { if (($ID.ToString()).endswith('-admin')) { $acesToRemove = $acl | trong đó{ $_.IsInherited -eq $false -and $_.IdentityReference -eq $ID }; $acl.RemoveAccessRuleAll($acesToRemove); Set-Acl -AclObject $acl $currentDir.ToString(); } } }
vì nó là 1 lớp lót nên tôi đã tách nó ra bên dưới để dễ đọc.
Nhận vật phẩm $vData |`
thuyết minh {`
$_ ; $_ | Get-ChildItem -directory -Force -Recurse `
}`
| thuyết minh {`
$currentDir = $_;`
$acl = ($_ | Get-Acl).Access; `
$ID = $acl | chọn tham chiếu nhận dạng ;`
foreach ($ID tính bằng $ID) { `
if (($ID.ToString()).endswith('-admin')) {`
$acesToRemove = $acl | trong đó{ $_.IsInherited -eq $false -and $_.IdentityReference -eq $ID };`
$acl.RemoveAccessRuleAll($acesToRemove); `
Set-Acl -AclObject $acl $currentDir.ToString(); `
}`
}`
}
mã để xóa quyền dựa trên mã tôi tìm thấy ở đây
Xóa hoàn toàn người dùng khỏi ACL bằng PowerShell