共用方式為


Get-Acl

取得資源 (例如檔案或登錄機碼) 的安全性描述元。

Syntax

Get-Acl
   [[-Path] <String[]>]
   [-Audit]
   [-Filter <String>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [<CommonParameters>]
Get-Acl
   -InputObject <PSObject>
   [-Audit]
   [-Filter <String>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [<CommonParameters>]
Get-Acl
   [-LiteralPath <String[]>]
   [-Audit]
   [-Filter <String>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [<CommonParameters>]

Description

Cmdlet 會 Get-Acl 取得對象,這些物件代表檔案或資源的安全性描述項。 安全性描述元包含資源的存取控制清單 (ACL)。 ACL 會指定使用者和使用者群組存取資源所需的權限。

從 Windows PowerShell 3.0 開始,您可以使用 的 Get-AclInputObject 參數來取得沒有路徑之物件的安全性描述元。

範例

範例 1- 取得資料夾的 ACL

這個範例會取得目錄的安全性描述元 C:\Windows

Get-Acl C:\Windows

範例 2 - 使用通配符取得資料夾的 ACL

這個範例會取得目錄中名稱開頭s為 的所有.log檔案C:\Windows的 PowerShell 路徑和 SDDL。

Get-Acl C:\Windows\s*.log | Format-List -Property PSPath, Sddl

命令會 Get-Acl 使用 Cmdlet 來取得代表每個記錄檔之安全描述元的物件。 它會使用管線運算子 (|) 將結果傳送至 Format-List Cmdlet。 此命令會使用 的 Format-ListProperty 參數,只顯示每個安全性描述元物件的 PsPathSDDL 屬性。

清單 通常用於PowerShell,因為長值在數據表中會遭到截斷。

SDDL 值對系統管理員而言非常有用,因為它們是簡單的文字字串,其中包含安全性描述元中的所有資訊。 因此,可輕鬆地傳遞和儲存這些值,並在需要時加以剖析。

範例 3 - 取得 ACL 的稽核項目計數

這個範例會取得目錄中名稱開頭s為 之檔案C:\Windows的安全性描述符.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 參數會指定 Control 子機碼。 管線運算子 (|) 將取得Format-List的安全性描述項Get-Acl傳遞給 命令,它會將安全性描述元的屬性格式化為清單,以便更容易閱讀。

範例 5 - 使用 **InputObject** 取得 ACL

這個範例會使用的 Get-AclInputObject 參數來取得儲存子系統對象的安全性描述元。

Get-Acl -InputObject (Get-StorageSubSystem -Name S087)

參數

-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 參數。 篩選的語法 (包括是否使用萬用字元) 取決於提供者。 篩選比其他參數更有效率,因為提供者在取得物件時會套用它們,而不是在擷取對象之後讓 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 參數值將完全依照其輸入值來使用。 沒有字元會被視為萬用字元。 如果路徑包含逸出字元,請將它括在單引號中。 單引號會指示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

輸入

String

您可以使用管線將包含 路徑的字串傳送至 Get-Acl

輸出

System.Security.AccessControl.FileSecurity, System.Security.AccessControl.DirectorySecurity, System.Security.AccessControl.RegistrySecurity

Get-Acl 會傳回 物件,表示其取得的 ACL。 物件類型取決於 ACL 類型。

備註

此 Cmdlet 僅適用於 Windows 平臺。

根據預設, Get-Acl 會顯示資源 (<provider>::<resource-path>) 、資源擁有者及 “Access” 的資源路徑,此清單 (陣列) 任意訪問控制清單中的訪問控制專案 (DACL) 。 DACL 清單是由資源擁有者所控制。

當您將結果格式化為清單時,除了路徑、擁有者和存取清單之外, (Get-Acl | Format-List) ,PowerShell 還會顯示下列屬性和屬性值:

  • Group:擁有者的安全性群組。
  • 核:系統訪問控制清單中的項目清單 (陣列) , (SACL) 。 SACL 會指定 Windows 為其產生稽核記錄的存取嘗試類型。
  • Sddl:在單一文字字串中,以 Security Descriptor Definition Language 格式顯示的資源安全性描述元。 PowerShell 會使用安全性描述元的 GetSddlForm 方法來取得此數據。

因為 Get-Acl 檔案系統和登錄提供者支援,所以您可以使用 Get-Acl 來檢視檔案系統物件的 ACL,例如檔案和目錄,以及登錄物件,例如登錄機碼和專案。