Get-Acl

ファイルやレジストリ キーなどのリソースのセキュリティ記述子を取得します。

構文

Get-Acl [[-Path] <string[]>] [-Audit] [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-UseTransaction] [<CommonParameters>]

説明

Get-Acl コマンドレットは、ファイルまたはリソースのセキュリティ記述子を表すオブジェクトを取得します。セキュリティ記述子には、リソースのアクセス制御リスト (ACL) が含まれています。ACL は、ユーザーとユーザー グループがリソースにアクセスするためのアクセス許可を指定します。

パラメーター

-Audit

システム アクセス制御リスト (SACL) からセキュリティ記述子の監査データを取得します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Exclude <string[]>

指定した項目を除外します。このパラメーターの値は、Path パラメーターを修飾します。"*.txt" などのパス要素またはパターンを入力します。ワイルドカードを使用できます。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Filter <string>

プロバイダーの形式や言語でフィルターを指定します。このパラメーターの値は、Path パラメーターを修飾します。ワイルドカードを使用できるかどうかなど、フィルターの構文はプロバイダーによって異なります。フィルターは他のパラメーターよりも効率が良い方法です。これは、オブジェクトを取得した後に Windows PowerShell がオブジェクトをフィルターするのではなく、オブジェクトを取得する際にプロバイダーがフィルターを適用するためです。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Include <string[]>

指定した項目だけを取得します。このパラメーターの値は、Path パラメーターを修飾します。"*.txt" などのパス要素またはパターンを入力します。ワイルドカードを使用できます。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Path <string[]>

リソースのパスを指定します。Get-Acl は、パスで示されたリソースのセキュリティ記述子を取得します。ワイルドカードを使用できます。Path パラメーターを省略した場合、Get-Acl は現在のディレクトリのセキュリティ記述子を取得します。

パラメーター名 ("Path") は省略可能です。

必須

false

位置

1

既定値

パイプライン入力を許可する

true (ByValue, ByPropertyName)

ワイルドカード文字を許可する

false

-UseTransaction

コマンドを有効なトランザクションに含めます。このパラメーターは、トランザクションの進行中のみ有効です。詳細については、「about_Transactions」を参照してください。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

<CommonParameters>

このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。詳細については、次を参照してください: about_Commonparameters.

入力と出力

入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。

入力

System.String

パイプを使用してパスを含む文字列を Get-Acl に渡すことができます。

出力

System.Security.AccessControl

Get-Acl は、取得する ACL を表すオブジェクトを返します。オブジェクトの種類は、ACL の種類によって異なります。

既定では、Get-Acl はリソースへの Windows PowerShell パス (<provider>::<resource-path>) およびリソースの所有者と、リソースの随意アクセス制御リスト (DACL) のアクセス制御エントリの一覧 (配列) である "アクセス" を表示します。DACL 一覧は、リソース所有者によって制御されます。

結果を一覧として書式設定 ("get-acl | Format-List") すると、パス、所有者、およびアクセス一覧に加えて、以下のフィールドが表示されます。

-- Group: 所有者のセキュリティ グループ。

-- Audit: システム アクセス制御リスト (SACL) のエントリの一覧 (配列)。SACL は、Windows での監査レコード生成の対象となるアクセス試行の種類を指定します。

-- Sddl: リソースのセキュリティ記述子で、セキュリティ記述子定義言語形式の単一のテキスト文字列として表示されます。このデータは、セキュリティ記述子の GetSddlForm メソッドを使用して取得されます。

Get-Acl はファイル システムとレジストリ プロバイダーによってサポートされているため、Get-Acl を使用すると、ファイル システム オブジェクト (ファイルおよびディレクトリなど) およびレジストリ オブジェクト (レジストリキーおよびエントリなど) の ACL を表示できます。

例 1

C:\PS>get-acl C:\windows

説明
-----------
このコマンドは、C:\Windows ディレクトリのセキュリティ記述子を取得します。





例 2

C:\PS>get-acl C:\Windows\k*.log | format-list -property PSPath, Sddl

説明
-----------
このコマンドは、C:\Windows ディレクトリに含まれていて名前が "k" で始まる .log ファイルすべての Windows PowerShell パスおよび SDDL を取得します。

このコマンドは、Get-Acl を使用して、各ログ ファイルのセキュリティ記述子を表すオブジェクトを取得します。このコマンドは、パイプライン演算子 (|) を使用して、結果を Format-List コマンドレットに送信します。このコマンドは、Format-List の Property パラメーターを使用して、各セキュリティ記述子オブジェクトの PsPath プロパティおよび SDDL プロパティのみを表示します。

表では長い値が切り詰められて表示されるため、Windows PowerShell では多くの場合、一覧が使用されます。

SDDL 値は、セキュリティ記述子のすべての情報を含む単純なテキスト文字列であるため、システム管理者にとって貴重な値です。このため、これらの値は、渡すことや保存することが簡単で、必要な場合は解析できます。





例 3

C:\PS>get-ACL c:/windows/k*.log -Audit | foreach-object { $_.Audit.Count }

説明
-----------
このコマンドは、C:\Windows ディレクトリに含まれていて名前が "k" で始まる .log ファイルのセキュリティ記述子を取得します。このコマンドは Audit パラメーターを使用して、セキュリティ記述子の SACL から監査レコードを取得します。次に、For-EachObject パラメーターを使用して、各ファイルに関連付けられている監査レコードの数をカウントします。結果は、各ログ ファイルの監査レコードの数を表す数字の一覧です。





例 4

C:\PS>get-acl -path hklm:\system\currentcontrolset\control | format-list

説明
-----------
このコマンドは、Get-Acl を使用して、レジストリの Control サブキー (HKLM\SYSTEM\CurrentControlSet\Control) のセキュリティ記述子を取得します。

Path パラメーターは、Control サブキーを指定します。パイプライン演算子 (|) によって、Get-Acl が取得するセキュリティ記述子が Format-List コマンドに渡され、セキュリティ記述子のプロパティが読みやすいように一覧形式で書式設定されます。





関連項目

概念

Set-Acl