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 以降では、InputObject パラメーターGet-Acl
を使用して、パスのないオブジェクトのセキュリティ記述子を取得できます。
例
例 1 - フォルダーの ACL を取得する
この例では、ディレクトリのセキュリティ記述子を C:\Windows
取得します。
Get-Acl C:\Windows
例 2 - wild を使用してフォルダーの ACL を取得するカード
この例では、名前が .. で始まるs
ディレクトリ内C:\Windows
のすべてのファイルの .log
PowerShell パスと SDDL を取得します。
Get-Acl C:\Windows\s*.log | Format-List -Property PSPath, Sddl
このコマンドは、コマンドレットを Get-Acl
使用して、各ログ ファイルのセキュリティ記述子を表すオブジェクトを取得します。 パイプライン演算子 (|
) を使用して、結果をコマンドレットに Format-List
送信します。 このコマンドでは、Property パラメーターFormat-List
を使用して、各セキュリティ記述子オブジェクトの PsPath プロパティと SDDL プロパティのみを表示します。
長い値はテーブルで切り捨てられたように見えるため、PowerShell ではリストがよく使用されます。
SDDL 値は、セキュリティ記述子のすべての情報を含む単純なテキスト文字列であるため、システム管理者にとって重要です。 そのため、これらの値は簡単に渡して保存でき、必要なときに解析できます。
例 3 - ACL の監査エントリの数を取得する
この例では、名前が .. で始まるs
ディレクトリ内のファイルの.log
C:\Windows
セキュリティ記述子を取得します。
Get-Acl C:\Windows\s*.log -Audit | ForEach-Object { $_.Audit.Count }
監査パラメーターを使用して、セキュリティ記述子の SACL から監査レコードを取得します。
次に、コマンドレットを ForEach-Object
使用して、各ファイルに関連付けられている監査レコードの数をカウントします。 結果として、各ログ ファイルの監査レコードの数を表す番号のリストが得られます。
例 4 - レジストリ キーの ACL を取得する
この例では、コマンドレットを Get-Acl
使用して、レジストリの Control サブキー (HKLM:\SYSTEM\CurrentControlSet\Control
) のセキュリティ記述子を取得します。
Get-Acl -Path HKLM:\System\CurrentControlSet\Control | Format-List
Path パラメーターは、Control サブキーを指定します。 パイプライン演算子 (|
) は、コマンドに渡される Get-Acl
セキュリティ記述子を Format-List
渡します。このコマンドは、セキュリティ記述子のプロパティを一覧として書式設定して、読みやすくします。
例 5 - **InputObject** を使用して ACL を取得する
この例では、InputObject パラメーターGet-Acl
を使用して、ストレージ サブシステム オブジェクトのセキュリティ記述子を取得します。
Get-Acl -InputObject (Get-StorageSubSystem -Name S087)
パラメーター
-AllCentralAccessPolicies
コンピューター上で有効になっているすべての集約型アクセス ポリシーに関する情報を取得します。
Windows Server 2012 以降では、管理者は Active Directory とグループ ポリシーを使用して、ユーザーとグループの集約型アクセス ポリシーを設定できます。 詳細については、「動的アクセス制御: シナリオの概要」を参照してください。
このパラメーターは、Windows PowerShell 3.0 で導入されました。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-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 |
-UseTransaction
アクティブなトランザクションのコマンドが含まれます。 このパラメーターは、トランザクションが進行中の場合のみ有効です。 詳細については、「about_Transactions」を参照してください。
Type: | SwitchParameter |
Aliases: | usetx |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
このコマンドレットへのパスを含む文字列をパイプ処理できます。
出力
このコマンドレットは、取得した ACL を表すオブジェクトを返します。 オブジェクトの種類は、ACL の種類に依存します。
メモ
既定では、リソース ()、 Get-Acl
リソースの所有者、およびリソースの随意アクセス制御リスト (<provider>::<resource-path>
DACL) のアクセス制御エントリのリスト (配列) である "Access" への PowerShell パスが表示されます。 DACL リストは、リソースの所有者によって制御されます。
結果をリスト (Get-Acl | Format-List
) として書式設定すると、パス、所有者、アクセス リストに加えて、PowerShell には次のプロパティとプロパティ値が表示されます。
- グループ: 所有者のセキュリティ グループ。
- 監査: システム アクセス制御リスト (SACL) 内のエントリのリスト (配列)。 SACL は、Windows が監査レコードを生成するアクセス試行の種類を指定します。
- Sddl: セキュリティ記述子定義言語形式で 1 つのテキスト文字列で表示されるリソースのセキュリティ記述子。 PowerShell では、セキュリティ記述子の GetSddlForm メソッドを使用してこのデータを取得します。
ファイル システムとレジストリ プロバイダーでサポートされているため Get-Acl
、ファイルやディレクトリなどのファイル システム オブジェクトとレジストリ オブジェクト (レジストリ キーやエントリなど) の ACL を表示するために使用 Get-Acl
できます。
関連リンク
PowerShell
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示