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 代表檔案或資源安全描述符的物件。 安全描述符包含資源的存取控制清單(ACL)。 ACL 規定使用者及使用者群組存取資源的權限。
從 PowerShell 3.0 Windows開始,你可以使用 Get-Acl 的 InputObject 參數,取得沒有路徑物件的安全描述符。
範例
範例 1-為資料夾取得 ACL
此範例取得 C:\Windows 目錄的安全描述符。
Get-Acl C:\Windows
範例 2 - 使用萬用字組取得資料夾的 ACL
這個範例會取得 C:\Windows 目錄中所有名稱以 s 開頭的 .log 檔案的 PowerShell 路徑和 SDDL。
Get-Acl C:\Windows\s*.log | Format-List -Property PSPath, Sddl
該指令使用 Get-Acl cmdlet 來取得代表每個日誌檔案安全描述符的物件。 它會使用管線運算符 (|) 將結果傳送至 Format-List Cmdlet。 指令使用 Property 參數 的 Format-List ,僅顯示每個安全描述符物件的 PSPath 與 SDDL 屬性。
在 PowerShell 中常使用清單,因為長值在資料表中會被截斷。
SDDL 值對系統管理員非常有價值,因為它們是包含安全描述符中所有資訊的簡單文字串。 因此,它們容易傳遞和儲存,且在需要時可以解析。
範例 3 - 取得 ACL 的審計條目數量
此範例取得 C:\Windows 目錄中名稱以 s 開頭的 .log 檔案的安全描述符。
Get-Acl C:\Windows\s*.log -Audit | ForEach-Object { $_.Audit.Count }
它使用 Audit 參數,從安全描述符中的 SACL 取得審計記錄。
接著它會用 ForEach-Object cmdlet 來計算每個檔案所關聯的稽核紀錄數量。 結果是一份數字清單,代表每個日誌檔案的稽核記錄數量。
範例 4 - 取得 ACL 作為登錄檔金鑰
此範例使用 Get-Acl cmdlet 取得登錄檔控制子鍵(HKLM:\SYSTEM\CurrentControlSet\Control)的安全描述符。
Get-Acl -Path HKLM:\System\CurrentControlSet\Control | Format-List
Path 參數指定了控制子鍵。 管線操作員|()傳遞安全Format-List描述符,Get-Acl該描述符將安全描述符格式化為清單,使其易於閱讀。
範例 5 - 使用 **InputObject** 取得 ACL
此範例使用 InputObjectGet-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, LP |
參數集
ByLiteralPath
| Position: | Named |
| 必要: | False |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-Path
指定通往資源的路徑。
Get-Acl 取得路徑所指示資源的安全描述子。 允許使用通配符。 如果你省略了 Path 參數,就會 Get-Acl 得到目前目錄的安全描述符。
參數名稱(「路徑」)為可選。
參數屬性
| 類型: | 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
這個指令檔會回傳一個代表它所取得 ACL 的物件。 物件類型取決於 ACL 類型。
備註
此 Cmdlet 僅適用於 Windows 平臺。
預設情況下,會 Get-Acl 顯示資源<provider>::<resource-path>()的 PowerShell 路徑(),資源擁有者,以及「Access」,即該資源的自由存取控制清單(DACL)中存取控制條目的清單(陣列)。 DACL 清單由資源擁有者控制。
當你將結果格式化為清單(),Get-Acl | Format-List除了路徑、擁有者和存取清單外,PowerShell 還會顯示以下屬性與屬性值:
- 群組:擁有者的保全團隊。
- 審計:系統存取控制清單(SACL)中的一個項目清單(陣列)。 SACL 規定 Windows 產生稽核紀錄的存取嘗試類型。
- Sddl:資源的安全描述符,以單一文字串以安全描述符定義語言格式顯示。 PowerShell 使用 GetSddlForm 方法來取得這些資料。
由於 Get-Acl 由檔案系統與登錄檔提供者支援,你可以使用 Get-Acl 它來查看檔案系統物件(如檔案和目錄)以及登錄物件(如登錄檔金鑰和條目)的 ACL。