Get-Acl
ファイルやレジストリ キーなどのリソースのセキュリティ記述子を取得します。
構文
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>]
説明
Get-Acl コマンドレットは、ファイルまたはリソースのセキュリティ記述子を表すオブジェクトを取得します。 セキュリティ記述子には、リソースのアクセス制御リスト (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 を C:\Windows ディレクトリに格納します。
このコマンドでは、 Get-Acl コマンドレットを使用して、各ログ ファイルのセキュリティ記述子を表すオブジェクトを取得します。 パイプライン演算子 (|) を使用して、結果を Format-List コマンドレットに送信します。 このコマンドでは、Format-List の Property パラメーターを使用して、各セキュリティ記述子オブジェクトの PsPath プロパティと SDDL プロパティのみを表示します。
Windows PowerShell では、長い値がテーブルで切り捨てられるため、リストがよく使用されます。
SDDL 値は、セキュリティ記述子内のすべての情報を含む単純なテキスト文字列であるため、システム管理者にとって重要です。 そのため、簡単に渡して格納でき、必要に応じて解析できます。
例 3
Get-Acl C:/Windows/k*.log -Audit | ForEach-Object { $_.Audit.Count }
このコマンドは、名前が "k" で始まる C:\Windows ディレクトリ内の .log ファイルのセキュリティ記述子を取得します。 Audit パラメーターを使用して、セキュリティ記述子の SACL から監査レコードを取得します。 次に、ForEach-Object コマンドレットを使用して、各ファイルに関連付けられている監査レコードの数をカウントします。 結果は、各ログ ファイルの監査レコードの数を表す数値の一覧です。
例 4
Get-Acl -Path HKLM:\System\CurrentControlSet\Control | Format-List
このコマンドでは、 Get-Acl コマンドレットを使用して、レジストリの 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 で導入されています。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Audit
システム アクセス制御リスト (SACL) からセキュリティ記述子の監査データを取得します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Exclude
指定した項目を省略します。 このパラメーターの値によって、Path パラメーターが修飾されます。 "*.txt" などのパス要素またはパターンを入力します。 ワイルドカードを使用できます。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-Filter
プロバイダーの形式または言語でフィルターを指定します。 このパラメーターの値は、Path パラメーターを修飾します。 ワイルドカードの使用を含むフィルターの構文は、プロバイダーによって異なります。 フィルターは、オブジェクトの取得後に Windows PowerShell でフィルター処理するのではなく、プロバイダーがオブジェクトを取得するときにフィルターを適用するため、他のパラメーターよりも効率的です。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-Include
指定した項目のみを取得します。 このパラメーターの値は、Path パラメーターを修飾します。 "*.txt" などのパス要素またはパターンを入力します。 ワイルドカードを使用できます。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-InputObject
指定したオブジェクトのセキュリティ記述子を取得します。 オブジェクトを含む変数、またはオブジェクトを取得するコマンドを入力します。
パス以外のオブジェクトを Get-ACL にパイプすることはできません。 代わりに、コマンドで InputObject パラメーターを明示的に使用します。
このパラメーターは、Windows PowerShell 3.0 で導入されています。
型: | PSObject |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-LiteralPath
リソースへのパスを指定します。 Pathとは異なり、LiteralPath パラメーターの値は、型指定されたとおりに使用されます。 ワイルドカードとして解釈される文字はありません。 パスにエスケープ文字が含まれている場合は、単一引用符で囲みます。 単一引用符は、文字をエスケープ シーケンスとして解釈しないように Windows PowerShell に指示します。
このパラメーターは、Windows PowerShell 3.0 で導入されています。
型: | String[] |
Aliases: | PSPath |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Path
リソースへのパスを指定します。 Get-ACL は、パスで示されるリソースのセキュリティ記述子を取得します。 ワイルドカードを使用できます。 Path パラメーターを省略すると、Get-Acl は現在のディレクトリのセキュリティ記述子を取得します。
パラメーター名 ("Path") は省略可能です。
型: | String[] |
配置: | 1 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | True |
-UseTransaction
アクティブなトランザクションにコマンドを含みます。 このパラメーターは、トランザクションが進行中の場合にのみ有効です。 詳細については、「about_Transactions」を参照してください。
型: | SwitchParameter |
Aliases: | usetx |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
パスを含む文字列を Get-Acl にパイプ処理できます。
出力
Get-ACL は、取得した ACL を表すオブジェクトを返します。 オブジェクトの種類は ACL の種類によって異なります。
メモ
既定では、 Get-Acl は、リソースへの Windows PowerShell パス (<provider>::<resource-path>)、リソースの所有者、および "Access" (リソースの随意アクセス制御リスト (DACL) のアクセス制御エントリの一覧 (配列) ) を表示します。 DACL リストは、リソース所有者によって制御されます。
結果をリスト ("Get-Acl | Format-List
") として書式設定すると、Windows PowerShell では、パス、所有者、およびアクセス リストに加えて、次のプロパティとプロパティ値が表示されます。
- グループ: 所有者のセキュリティ グループ。
- 監査: システム アクセス制御リスト (SACL) 内のエントリのリスト (配列)。 SACL は、Windows が監査レコードを生成するアクセス試行の種類を指定します。
- Sddl: セキュリティ記述子定義言語形式の 1 つのテキスト文字列で表示されるリソースのセキュリティ記述子。 Windows PowerShell は、セキュリティ記述子の GetSddlForm メソッドを使用して、このデータを取得します。
Get-ACL はファイル システムとレジストリ プロバイダーでサポートされているため、Get-Acl を使用して、ファイルやディレクトリなどのファイル システム オブジェクト、およびレジストリ キーやエントリなどのレジストリ オブジェクトの ACL を表示できます。