如何使用 PowerShell 管理 NTFS 權限

管理 NTFS 權限使用圖形介面是非常耗時的,特別是在處理許多用戶或群組時。然而,特定的 PowerShell Cmdlets 可以檢索和指派 NTFS 權限。
本文將討論如何使用 Get-ACL
命令來管理 NTFS 權限。
在 PowerShell 中使用 Get-ACL
查看 NTFS 權限
存取控制列表(或 ACL)是一組存取控制條目(ACE),每個列表包含一個 ACE,該 ACE 標識一個受託人並指定存取權限。
一個可安全性配置的物件的安全描述符可以是兩種類型之一:DACL 或 SACL。DACL 標識被允許或拒絕存取的用戶和群組,而 SACL 控制存取。
PowerShell 允許我們快速使用 Get-ACL
Cmdlet 查看 NTFS 權限。我們將在以下部分學習如何使用該 Cmdlet 查看檔案或資料夾的 NTFS 權限。
在 PowerShell 中顯示 NTFS 權限
傳統上,我們會通過右鍵單擊資料夾,點擊 屬性
,選擇 安全性
標籤,然後點擊 高級
按鈕來查看 ACL。我們可以看到下面的 GUI 顯示權限的示例。
本文中的以下示例將路徑指派給變數 $dir
。
示例程式碼:
$dir = "C:\Windows\Temp"
Get-Acl -Path $dir
輸出:
Path Owner Access
---- ----- ------
Temp DESKTOP-7GI1260\KentMarion BUILTIN\Administrators Allow FullControl...
然而,使用 -Path
參數運行 Get-Acl
命令僅會顯示並輸出資料夾級別的存取控制列表。如果我們想檢查檔案級別的存取控制列表該怎麼辦?
在 PowerShell 中遞歸獲取檔案的 ACL
PowerShell 的一個優勢功能是管道的使用。PowerShell 管道使用管道運算符(|
)將一系列多個命令組合在一起。
我們可以使用管道方法來獲取檔案級別的存取控制列表。
我們需要使用命令 Get-ChildItem
來實現這種情況。Get-ChildItem
命令提取目錄內的所有檔案和資料夾。
讓我們用之前的 $dir
變數作為示例。
示例程式碼:
$dir = "C:\Windows\Temp"
Get-ChildItem $dir -Recurse | Get-Acl | Format-List | Out-File "C:\PS\output.txt"
在上面的示例中,-Recurse
開關參數對於遍歷所有檔案並執行 Get-Acl
命令非常重要。通過執行上面的程式碼片段,我們將能夠獲得 Temp
資料夾中所有檔案的存取控制列表權限。
還建議使用 Out-File
命令將所有詳細信息導出到一個文本文檔中,特別是如果你在目標資料夾中有許多檔案的話。
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn