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。