Programming Field

管理者でも開けないフォルダーの対処法(Takeown / Icacls活用) - Windowsコマンド実用例

アクセスが拒否されるフォルダーに対して、takeownicacls を用いて所有権を取得し、アクセス権限を修復する手順を紹介します。

使用コマンド

  • 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. 注意点

  • システムフォルダーには使用しないよう注意してください。
  • 企業やドメイン環境ではポリシーにより制限されている場合があります。
  • 変更後は元に戻す方法(バックアップや復元ポイント)を検討してください。

関連項目