Get-Acl
取得資源 (例如檔案或登錄機碼) 的安全性描述元。
Syntax
Get-Acl
[[-Path] <String[]>]
[-Audit]
[-AllCentralAccessPolicies]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-UseTransaction]
[<CommonParameters>]
Get-Acl
-InputObject <PSObject>
[-Audit]
[-AllCentralAccessPolicies]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-UseTransaction]
[<CommonParameters>]
Get-Acl
[-LiteralPath <String[]>]
[-Audit]
[-AllCentralAccessPolicies]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-UseTransaction]
[<CommonParameters>]
Description
Get-Acl Cmdlet 會取得物件,以代表檔案或資源的安全性描述元。 安全性描述元包含資源的存取控制清單 (ACL)。 ACL 會指定使用者和使用者群組存取資源所需的權限。
從 Windows PowerShell 3.0 開始,您可以使用 Get-Acl 的 InputObject 參數,取得不含路徑的物件安全性描述元。
範例
範例 1
Get-Acl C:\Windows
此命令取得 C:Windows 目錄的安全性描述元。
範例 2
Get-Acl C:\Windows\k*.log | Format-List -Property PSPath, Sddl
這個命令會針對 C:\Windows 目錄中名稱開頭為 "k" 的所有 .log 檔案,取得 Windows PowerShell 路徑和 SDDL。
命令使用 Get-Acl Cmdlet,取得代表每個記錄檔安全性描述元的物件。 它會使用管線運算子 (|) 將結果傳送到 Format-List Cmdlet。 命令使用 Format-List 的 Property 參數,只顯示每個安全性描述元物件的 PsPath 和 SDDL 屬性。
通常會在 Windows PowerShell 中使用清單,因為表格中會截斷過長的值。
SDDL 值對系統管理員而言非常有用,因為它們是簡單的文字字串,其中包含安全性描述元中的所有資訊。 因此,可輕鬆地傳遞和儲存這些值,並在需要時加以剖析。
範例 3
Get-Acl C:/Windows/k*.log -Audit | ForEach-Object { $_.Audit.Count }
此命令會取得 C:\Windows 目錄中名稱開頭為 “k” 之.log檔案的安全性描述項。它會使用 Audit 參數,從安全性描述元中的 SACL 取得稽核記錄。 然後它會使用 ForEach-Object Cmdlet 計算與每個檔案相關聯的稽核記錄數目。 結果是一個數字清單,代表每個記錄檔的稽核記錄數目。
範例 4
Get-Acl -Path HKLM:\System\CurrentControlSet\Control | Format-List
這個命令使用 Get-Acl Cmdlet,取得登錄中 Control 子機碼 (HKLM\SYSTEM\CurrentControlSet\Control) 的安全性描述元。
Path 參數會指定 Control 子機碼。 管線運算子 (|) 會將 Get-Acl 取得的安全性描述元傳遞給 Format-List 命令,這個命令會將安全性描述元的屬性格式化為清單,這樣就能輕鬆閱讀這些屬性。
範例 5
Get-Acl -InputObject (Get-StorageSubSystem -Name S087)
這個命令使用 Get-Acl 的 InputObject 參數,取得儲存體子系統物件的安全性描述元。
參數
-AllCentralAccessPolicies
取得電腦上啟用的所有集中存取原則的相關資訊。
從 Windows Server 2012 開始,系統管理員可以使用 Active Directory 和 群組原則 來設定使用者和群組的集中存取原則。 如需詳細資訊,請參閱動態 存取控制:案例概觀。
此參數是在 Windows PowerShell 3.0 引進。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Audit
從系統存取控制清單 (SACL) 取得安全性描述元的稽核資料。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Exclude
省略指定的項目。 此參數的值會限定 Path 參數。 輸入路徑元素或模式,例如 "*.txt"。 允許使用萬用字元。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Filter
以提供者的格式或語言指定篩選。 此參數的值會限定 Path 參數。 篩選的語法 (包括是否使用萬用字元) 取決於提供者。 篩選比其他參數更有效率,因為提供者會在取得物件時套用篩選,而不是讓 Windows PowerShell 抓取物件後篩選。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Include
只取得指定的項目。 此參數的值會限定 Path 參數。 輸入路徑元素或模式,例如 "*.txt"。 允許使用萬用字元。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-InputObject
取得指定物件的安全性描述元。 輸入包含物件的變數,或輸入可取得物件的命令。
您無法使用管線將路徑以外的物件傳送至 Get-Acl。 請改為在命令中明確地使用 InputObject 參數。
此參數是在 Windows PowerShell 3.0 引進。
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LiteralPath
指定資源的路徑。 與 Path 不同,LiteralPath 參數值將完全依照其輸入值來使用。 沒有字元會被視為萬用字元。 如果路徑包含逸出字元,請將它括在單引號中。 單引號告知 Windows PowerShell 不要將任何字元視為逸出序列。
此參數是在 Windows PowerShell 3.0 引進。
Type: | String[] |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Path
指定資源的路徑。 Get-Acl 取得路徑指定資源的安全性描述元。 允許使用萬用字元。 如果您省略 Path 參數,Get-Acl 就會取得目前目錄的安全性描述元。
參數名稱 ("Path") 為選擇性。
Type: | String[] |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-UseTransaction
將命令加入使用中交易。 只有交易為處理中狀態時,此參數才有效。 如需詳細資訊,請參閱 about_Transactions。
Type: | SwitchParameter |
Aliases: | usetx |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
輸入
您可以使用管線將包含路徑的字串傳送至 Get-Acl。
輸出
Get-Acl 傳回代表其取得之 ACL 的物件。 物件類型取決於 ACL 類型。
備註
根據預設,Get-Acl 會顯示資源 (<提供者>::<resource-path>) 、資源擁有者和 “Access” 的資源 Windows PowerShell 路徑) 列表, (DACL) 資源之訪問控制專案的清單 (陣列。 DACL 清單是由資源擁有者所控制。
當您將結果格式化為清單時 ("Get-Acl | Format-List
"),除了路徑、擁有者及存取清單之外,Windows PowerShell 還會顯示下列屬性和屬性值:
- Group:擁有者的安全性群組。
- 稽核:系統訪問控制清單中的項目清單 (陣列) , (SACL) 。 SACL 會指定 Windows 為其產生稽核記錄的存取嘗試類型。
- Sddl:在單一文字字串中,以 Security Descriptor Definition Language 格式顯示的資源安全性描述元。 Windows PowerShell 會使用安全性描述元的 GetSddlForm 方法來取得這個資料。
由於檔案系統和登錄提供者均支援 Get-Acl,因此,您可以使用 Get-Acl 來檢視檔案系統物件 (例如檔案和目錄) 與登錄物件 (例如登錄機碼和項目) 的 ACL。