管理者でも開けないフォルダーの対処法(Takeown / Icacls活用) - Windowsコマンド実用例
アクセスが拒否されるフォルダーに対して、takeown
と icacls
を用いて所有権を取得し、アクセス権限を修復する手順を紹介します。
使用コマンド
対象読者
- 「このフォルダーにアクセスする許可がありません」と表示される問題に直面している方
- Takeown / Icacls の使い分けを知りたい方
1. 所有権がないとどうなる?
フォルダーやファイルの所有者でない場合、たとえ管理者権限を持っていてもアクセスできないことがあります。
WindowsではNTFSのアクセス制御により、所有者が明示的に設定されたファイルやフォルダーに対して、他のユーザー(たとえ管理者であっても)がアクセスするには、適切なアクセス許可が必要です。アクセス権限が与えられていない、または継承設定により制限されている場合、「アクセスが拒否されました」などのエラーが表示されます。
このような状況を解決するためには、まず takeown
コマンドを使って所有者を取得し、続いて icacls
コマンドで必要なアクセス権限を付与するのが基本的な手順となります。
2. takeown
で所有者を変更する
takeown
はフォルダーやファイルの所有権を自分(または Administrators)に変更するためのコマンドです。
takeown /f "C:\アクセス拒否されたフォルダー" /r /d y
/f
… 対象のファイルまたはディレクトリ/r
… サブフォルダーも再帰的に/d y
… 確認の必要な場合に「はい」と自動応答
なお、takeown
は所有者を変更するだけでなく、実行ユーザーに対して読み取り権限(Read
)を自動的に付与する場合があります。これは所有権取得後に対象を読み取れるようにするための措置ですが、アクセス制御リストそのものを意図的に操作する場合は icacls
の併用が推奨されます。
3. icacls
でアクセス許可を変更する
icacls
を使ってアクセス許可を明示的に与えることで、所有者であってもアクセスできなかったフォルダーへの操作が可能になります。
icacls "C:\アクセス拒否されたフォルダー" /grant %USERNAME%:F /t
/grant
… 指定したユーザーにアクセス許可%USERNAME%
… 現在のユーザー名:F
… フルコントロール/t
… サブフォルダー・ファイルにも適用
icacls
には /setowner
オプションもあり、これは対象ファイルやフォルダーの所有者を指定したユーザーに変更できます。たとえば、以下のようにして Administrators グループを所有者に設定できます:
icacls "C:\アクセス拒否されたフォルダー" /setowner "Administrators" /t
/setowner
… 指定したユーザーに所有権を移す/t
… サブフォルダー・ファイルにも適用
takeown
との違いとして、icacls /setowner
は任意のユーザーやグループに所有権を移せる点で柔軟性があり、スクリプトによる一括設定やポリシー準拠の用途にも適しています。
なお、takeown
はユーザー操作において確認をスキップできる簡便さと、管理者としての自動所有権取得の汎用性があり、単純な復旧用途には takeown
の方が簡潔かつ確実なケースもあります。
4. Takeown と Icacls の違いと使い分け
コマンド | 主な用途 | 備考 |
---|---|---|
takeown |
所有者を自分に変更 | 所有権がないと操作できない対象に使う |
icacls |
アクセス権限を付与・変更、および所有者の変更(/setowner ) |
所有者でも権限がなければアクセスできないことがある |
5. 注意点
- システムフォルダーには使用しないよう注意してください。
- 企業やドメイン環境ではポリシーにより制限されている場合があります。
- 変更後は元に戻す方法(バックアップや復元ポイント)を検討してください。