Get-Acl
取得資源的安全性描述元,例如檔案或登錄機碼。
語法
ByPath (預設值)
Get-Acl
[[-Path] <String[]>]
[-Audit]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[<CommonParameters>]
ByInputObject
Get-Acl
-InputObject <PSObject>
[-Audit]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[<CommonParameters>]
ByLiteralPath
Get-Acl
[-LiteralPath <String[]>]
[-Audit]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[<CommonParameters>]
Description
此 Cmdlet 只能在 Windows 平臺上使用。
Get-Acl Cmdlet 會取得代表檔案或資源之安全性描述元的物件。 安全性描述項包含資源的訪問控制清單(ACL)。 ACL 會指定使用者和使用者群組必須存取資源的許可權。
從 Windows PowerShell 3.0 開始,您可以使用 的 Get-Acl 參數來取得沒有路徑之物件的安全性描述元。
範例
範例 1- 取得資料夾的 ACL
這個範例會取得 C:\Windows 目錄的安全性描述元。
Get-Acl C:\Windows
範例 2 - 使用通配符取得資料夾的 ACL
本範例會取得名稱開頭為 .log之 C:\Windows 目錄中所有 s 檔案的 PowerShell 路徑和 SDDL。
Get-Acl C:\Windows\s*.log | Format-List -Property PSPath, Sddl
命令會使用 Get-Acl Cmdlet 來取得代表每個記錄檔之安全性描述項的物件。 它會使用管線運算符 (|) 將結果傳送至 Format-List Cmdlet。 此命令會使用 的 Format-List 參數,只顯示每個安全性描述元物件的 PsPath 和 SDDL 屬性。
清單通常用於PowerShell,因為資料表中會出現長值。
SDDL 值對於系統管理員而言相當重要,因為它們是包含安全性描述元中所有資訊的簡單文字字串。 因此,它們很容易通過和儲存,而且在需要時可以剖析。
範例 3 - 取得 ACL 的稽核項目計數
這個範例會取得 .log 目錄中 C:\Windows 檔案的安全性描述元,其名稱開頭為 s。
Get-Acl C:\Windows\s*.log -Audit | ForEach-Object { $_.Audit.Count }
它會使用 Audit 參數,從安全性描述元中的 SACL 取得稽核記錄。
然後它會使用 ForEach-Object Cmdlet 來計算與每個檔案相關聯的稽核記錄數目。 結果是數字清單,代表每個記錄檔的稽核記錄數目。
範例 4 - 取得登錄機碼的 ACL
此範例會使用 Get-Acl Cmdlet 來取得登錄之 Control 子機碼 (HKLM:\SYSTEM\CurrentControlSet\Control) 的安全性描述項。
Get-Acl -Path HKLM:\System\CurrentControlSet\Control | Format-List
Path 參數會指定 Control 子機碼。 管線運算子 (|) 會將 Get-Acl 的安全性描述元傳遞至 Format-List 命令,其會將安全性描述元的屬性格式化為清單,使其易於讀取。
範例 5 - 使用 **InputObject** 取得 ACL
這個範例會使用 的 Get-Acl 參數來取得儲存子系統對象的安全性描述項。
Get-Acl -InputObject (Get-StorageSubSystem -Name S087)
參數
-Audit
從系統訪問控制清單取得安全性描述項的稽核數據(SACL)。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Exclude
省略指定的項目。 此參數的值對 路徑 參數進行限定。 輸入路徑元素或模式,例如 *.txt。 允許使用通配符。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | True |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Filter
以提供者的格式或語言指定篩選。 此參數的值對 路徑 參數進行限定。 篩選的語法,包括使用通配符,取決於提供者。 篩選比其他參數更有效率,因為提供者在取得物件時會套用它們,而不是讓 PowerShell 在擷取對象之後篩選物件。
參數屬性
| 類型: | String |
| 預設值: | None |
| 支援萬用字元: | True |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Include
只取得指定的專案。 此參數的值對 路徑 參數進行限定。 輸入路徑元素或模式,例如 *.txt。 允許使用通配符。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | True |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-InputObject
取得指定之物件的安全性描述項。 輸入包含 物件的變數,或取得物件的命令。
您無法使用管線將路徑以外的物件傳送至 Get-Acl。 在命令中,改為明確使用 InputObject 參數。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | PSObject |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
ByInputObject
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-LiteralPath
指定資源的路徑。 不同於 Path,LiteralPath 參數的值完全按照輸入的方式使用。 不會將任何字元解譯為通配符。 如果路徑包含逸出字元,請以單引弧括住它。 單引號會告知PowerShell不要將任何字元解譯為逸出序列。
此參數是在 Windows PowerShell 3.0 中引進的。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | PSPath |
參數集
ByLiteralPath
| Position: | Named |
| 必要: | False |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-Path
指定資源的路徑。
Get-Acl 取得路徑所指示之資源的安全性描述元。 允許使用通配符。 如果您省略 Path 參數,Get-Acl 取得目前目錄的安全性描述元。
參數名稱 (“Path”) 是選擇性的。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | True |
| 不要顯示: | False |
參數集
ByPath
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
CommonParameters
此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。
輸入
String
您可以傳送包含路徑的字串到此 Cmdlet。
輸出
FileSecurity
DirectorySecurity
RegistrySecurity
這個 Cmdlet 會傳回物件,代表其取得的 ACL。 物件類型取決於 ACL 類型。
備註
此 Cmdlet 僅適用於 Windows 平臺。
根據預設,Get-Acl 會顯示資源的PowerShell路徑(<provider>::<resource-path>)、資源的擁有者,以及資源自由裁量訪問控制清單 (DACL) 中訪問控制項目的清單 (array) 和 “Access”。 DACL 清單是由資源擁有者所控制。
當您將結果格式化為清單時,除了路徑、擁有者和存取清單之外,Get-Acl | Format-ListPowerShell 也會顯示下列屬性和屬性值:
- 群組:擁有者的安全組。
- 稽核:系統訪問控制清單中項目的清單(陣列)(SACL)。 SACL 會指定 Windows 產生稽核記錄的存取嘗試類型。
- Sddl:以安全描述元定義語言格式的單一文字字串顯示之資源的安全性描述元。 PowerShell 會使用安全性描述項 GetSddlForm 方法來取得此數據。
因為檔案系統和登錄提供者支援 Get-Acl,您可以使用 Get-Acl 來檢視檔案系統物件的 ACL,例如檔案和目錄,以及登錄物件,例如登錄機碼和專案。