もくじ
📝 はじめに
PowerShellでファイルやフォルダを操作していると、
「なぜか削除できない」
「コピーや上書きが拒否される」
「自分は管理者なのにアクセスできない」
といった場面に出会うことがあります。
その原因の多くは
アクセス権(ACL) にあります。
PowerShellでは
Get-Acl を使うことで、
ファイルやフォルダに設定されているアクセス権の詳細を確認できます。
- 削除・編集できない原因を調べたい
- 誰にどんな権限があるか確認したい
- スクリプトで権限トラブルを切り分けたい
✅ このコマンドでできること(要点)
- ファイルやフォルダのアクセス権を確認できる
- ユーザー・グループごとの権限を把握できる
- 拒否(Deny)設定の有無を確認できる
- トラブル原因の切り分けに使える
✅ Get-Acl でできること
Get-Acl は、
指定したファイルやフォルダに設定されている
アクセス制御リスト(ACL)を取得するコマンドです。
ACLには、
「誰が」「何を」「どこまでできるか」
という情報が細かく記録されています。
表示結果はやや複雑ですが、
権限トラブルを調べるうえでは
避けて通れない情報です。
🧩 基本構文
Get-Acl パス
ファイルまたはフォルダのパスを指定します。
▶ 基本的な使い方(まずこれだけ)
🔹 フォルダのアクセス権を確認する
Get-Acl C:\Work
所有者(Owner)や
アクセス権の一覧が表示されます。
🔹 ファイルのアクセス権を確認する
Get-Acl C:\Work\sample.txt
ファイル単位での権限設定を確認できます。
🛠 よく使われる確認方法
🔹 アクセス権の一覧だけを見る
(Get-Acl C:\Work).Access
実際の権限ルール(ACE)だけを抽出できます。
🔹 所有者を確認する
(Get-Acl C:\Work).Owner
所有者が自分でない場合、
操作できない原因になることがあります。
💼 実務でよく使う使用例(応用)
🔹 削除できない原因を調べる
$acl = Get-Acl C:\Temp\data.txt
$acl.Access
Deny(拒否)が設定されていないかを確認します。
🔹 特定ユーザーの権限を確認する
Get-Acl C:\Work |
Select-Object -ExpandProperty Access |
Where-Object { $_.IdentityReference -match "Users" }
- Get-ChildItem で複数フォルダを調査
- Where-Object でユーザーを絞り込み
- 権限トラブルの原因特定に活用
🧩 よくある勘違い・つまずきポイント
- 管理者でも拒否(Deny)があると操作できない
- 継承された権限が影響している場合がある
- 所有者と権限は別物
- 表示が多くて見づらい
- -Force では権限問題は解決しない
🔄 cmdとの違いについて
cmd では icacls を使いますが、
PowerShell の Get-Acl は
権限情報をオブジェクトとして扱えるのが特徴です。
そのため、条件判定や自動チェックに向いています。
⚠ エラー・うまく動かないときの確認ポイント
- 対象のパスが正しいか
- ファイルかフォルダか
- 拒否(Deny)設定がないか
- 継承された権限の影響がないか
🧠 注意点
アクセス権は
システムの安全性に直結します。
Get-Acl は確認専用として使い、
変更を行う場合は
影響範囲を十分理解したうえで作業しましょう。
📌 まとめ
- Get-Acl でアクセス権を確認できる
- 削除・編集できない原因の切り分けに有効
- 所有者・拒否設定も重要なポイント
- 権限トラブル対応の基本コマンド
🔎 PowerShellコマンドを探す
やりたいことからコマンドを探すこともできます。
- ファイルのアクセス権を確認したい
- 削除できない原因を調べたい
- 誰が操作できるか知りたい
- 権限トラブルを切り分けたい
- エラーや実行できない原因を調べたい
- PowerShellで安全に確認したい
- 管理作業を効率化したい
