2017-01-03 108 views
0

如果帳戶大於7天,我正在編寫一個腳本,該腳本將刪除特定用戶。
但是,當用戶被刪除時,我的文件服務器上的NTFS權限仍然存在。
如何使用PowerShell刪除特定用戶的所有權限?在所有子目錄中刪除用戶的NTFS權限

+0

小心解釋爲什麼你downvote我的問題? –

+0

我會懷疑是誰低估了你的問題,因爲它沒有顯示出任何努力來解決你自己的問題。 –

+0

嗨,你的問題中沒有代碼,你有什麼嘗試? – sodawillow

回答

3

您應該從不授予個人用戶權限(主目錄和用戶配置文件除外)。正如你自己看到的那樣清理起來很麻煩。 始終創建代表需要訪問的特定功能/角色的組,併爲這些組授予權限。

您可以通過icacls清理權限:

icacls C:\root\folder /remove DOMAIN\user /t /c 

但是請注意,你必須這樣做之前刪除帳戶,因爲某些原因icacls無法清理刪除帳戶的SID 。

如果您已經刪除了帳戶,您可以嘗試使用Get-AclSet-Acl修復權限:

Get-ChildItem C:\root\folder -Recurse -Force | ForEach-Object { 
    $acl = Get-Acl -LiteralPath $_.FullName 
    $ace = $acl.Access | Where-Object { $_.IdentityReference -like 'S-1-5-*' } 
    $acl.RemoveAccessRule($ace) | Out-Null 
    Set-Acl -LiteralPath $_.FullName -AclObject $acl 
} 

請注意,您可能需要調整的條件選擇ACE從文件或文件夾的訪問控制列表中刪除。

另請注意,上述操作對於所有者不是運行代碼或其中一個組的用戶的文件/文件夾將失敗。在這種情況下,您可以使用如subinaclSetACL這樣的工具作爲最後的手段,如在ServerFault上回答this question所述。

相關問題