Get-Acl
取得資源 (如檔案或登錄機碼) 的安全性描述元。
語法
Get-Acl [[-Path] <string[]>] [-Audit] [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-UseTransaction] [<CommonParameters>]
描述
Get-Acl Cmdlet 會取得代表檔案或資源之安全性描述元的物件。安全性描述元包含資源的存取控制清單 (ACL)。ACL 會指定使用者及使用者群組存取資源所需的權限。
參數
-Audit
從系統存取控制名單 (SACL) 取得安全性描述元的稽核資料。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Exclude <string[]>
忽略指定的項目。此參數的值用於限定 Path 參數。輸入路徑元素或模式,例如 "*.txt"。允許使用萬用字元。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Filter <string>
指定以提供者的格式或語言表示的篩選器。此參數的值用於限定 Path 參數。篩選器的語法 (包括萬用字元的用法) 依提供者而定。篩選器比其他參數更有效率,因為提供者會在擷取物件時套用篩選器,而非等到 Windows PowerShell 擷取物件後才進行篩選。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Include <string[]>
只擷取指定的項目。此參數的值用於限定 Path 參數。輸入路徑元素或模式,例如 "*.txt"。允許使用萬用字元。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Path <string[]>
指定資源的路徑。Get-Acl 會取得路徑所指定資源的安全性描述元。允許使用萬用字元。如果省略 Path 參數,Get-Acl 將取得目前目錄的安全性描述元。
參數名稱 ("Path") 為選擇項。
必要? |
false |
位置? |
1 |
預設值 |
|
接受管線輸入? |
true (ByValue, ByPropertyName) |
接受萬用字元? |
false |
-UseTransaction
將命令加入現用交易中。此參數只有當交易進行中時才有效。如需詳細資訊,請參閱 about_Transactions。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
<CommonParameters>
這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.
輸入和輸出
輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。
輸入 |
System.String 您可經由管道將包含路徑的字串輸出至 Get-Acl。 |
輸出 |
System.Security.AccessControl Get-Acl 會傳回代表它所取得之 ACL 的物件。此物件類型取決於 ACL 類型。 |
附註
根據預設,Get-Acl 會顯示資源的 Windows PowerShell 路徑 (<提供者>::<資源路徑>)、資源的擁有者以及「存取」(資源之判別存取控制清單 (DACL) 中的存取控制項目清單 (陣列))。DACL 清單是由資源擁有者控制。
當您將結果格式化成清單時 ("get-acl | Format-List"),除了路徑、擁有者和存取清單之外,Windows PowerShell 還會顯示下列欄位:
-- 群組:擁有者的安全性群組。
-- 稽核:系統存取控制名單 (SACL) 中的項目清單 (陣列)。SACL 指定 Windows 產生稽核記錄時所針對的存取嘗試類型。
-- Sddl:以安全性描述元定義語言格式的單一文字字串顯示的資源安全性描述元。Windows PowerShell 使用安全性描述元的 GetSddlForm 方法來擷取這個資料。
因為檔案系統和登錄提供者支援 Get-Acl,所以您可以使用 Get-Acl 來檢視檔案系統物件 (如檔案及目錄) 與登錄物件 (如登錄機碼及項目) 的 ACL。
範例 1
C:\PS>get-acl C:\windows
描述
-----------
這個命令會取得 C:Windows 目錄的安全性描述元。
範例 2
C:\PS>get-acl C:\Windows\k*.log | format-list -property PSPath, Sddl
描述
-----------
這個命令取得 C:\windows 目錄中,其名稱以 "k" 開頭之所有 .log 檔案的 Windows PowerShell 路徑與 SDDL。
此命令會使用 Get-Acl 來取得代表每個記錄檔安全性描述元的物件。它使用管線運算子 (|) 傳送結果給 Format-List Cmdlet。此命令會使用 Format-List 的 Property 參數來單獨顯示每個安全性描述元物件的 PsPath 和 SDDL 屬性。
Windows PowerShell 經常使用清單,因為較長的值顯示在表格中會被截斷。
SDDL 值對系統管理員而言非常有用,因為這是包含安全性描述元中所有資訊的簡單文字字串。因此,這些值很容易傳遞與儲存,而且還可在需要時加以剖析。
範例 3
C:\PS>get-ACL c:/windows/k*.log -Audit | foreach-object { $_.Audit.Count }
描述
-----------
這個命令會取得 C:\Windows 目錄中,其名稱以 "k" 開頭之所有 .log 檔案的安全性描述元。它會使用 Audit 參數,從安全性描述的 SACL 中擷取稽核記錄。然後使用 For-EachObject 參數來計算每個檔案的相關稽核記錄的筆數。所得結果會是一份代表每個記錄檔稽核記錄筆數的數目清單。
範例 4
C:\PS>get-acl -path hklm:\system\currentcontrolset\control | format-list
描述
-----------
這個命令會使用 Get-Acl 來取得登錄之 Control 子機碼 (HKLM\SYSTEM\CurrentControlSet\Control) 的安全性描述元。
Path 參數會指定 Control 子機碼。管線運算子 (|) 會將 Get-Acl 所擷取的安全性描述元傳遞給 Format-List 命令,後者再將安全性描述元的屬性格式化為清單,以便於閱讀。