Windowsを使っていて、こんな経験はありませんか?
- 「このファイルにアクセスできません」
- 「削除できない」「編集できない」
- 「権限がありませんと表示される」
これらの原因の多くは、ファイルやフォルダの「アクセス権限」にあります。
そんなとき、コマンドプロンプト(CMD)を使えば、細かく権限を設定・変更できるんです。
この記事では、初心者の方でも理解しやすいように、Windowsのコマンドプロンプトでファイルやフォルダのアクセス権を変更する方法を、実例つきでわかりやすく解説します。
アクセス権限とは?どんなときに必要?

Windowsでは、誰がどのファイルに対して何ができるかを細かく制御しています。
主な権限の種類には以下があります:
- 読み取り(Read)
- 書き込み(Write)
- 実行(Execute)
- フルコントロール(Full Control)
これらの設定は、セキュリティ対策や誤操作の防止に欠かせません。
権限変更に使う「icacls」コマンドとは
コマンドプロンプトで権限を変更するには、icacls
というコマンドを使用します。
icacls
は、Windows Vista以降のバージョンに標準搭載されています。
基本構文
icacls [ファイルまたはフォルダのパス] /grant [ユーザー名]:[権限]
例:
icacls "C:\example\file.txt" /grant UserName:R
このコマンドは、「UserName」というユーザーにファイル「file.txt」の読み取り権限(R)を付与します。
基本的な権限の設定方法

付与(/grant):
icacls "パス" /grant ユーザー名:(権限)
削除(/remove):
icacls "パス" /remove ユーザー名
権限の種類(略号):
権限 | 説明 |
---|---|
F | フルコントロール |
M | 修正 |
RX | 読み取りと実行 |
R | 読み取り |
W | 書き込み |
具体例:特定ユーザーに読み取り専用権限を付与する
例えば、以下のようなケースを考えます。
フォルダ「C:\data\reports」に対して、ユーザー「Tanaka」に読み取りのみの権限を与えたい。
その場合のコマンドはこうです:
icacls "C:\data\reports" /grant Tanaka:R /T
ここでの /T
は、サブフォルダ・ファイルすべてに適用するという意味です。
権限をリセット・継承を無効にする方法

Windowsでは、フォルダの権限が親フォルダから自動的に継承されます。これを止めたい場合は以下のようにします。
継承を無効化+現在の権限を明示的に保持:
icacls "C:\data\reports" /inheritance:d
継承を無効化し、現在の権限も削除(初期化):
icacls "C:\data\reports" /inheritance:r
よくあるエラーとその対処法
- Q「アクセスが拒否されました」
- A
管理者権限でコマンドプロンプトを実行していない可能性があります。**スタートメニューから「cmd」を右クリック → 「管理者として実行」**を選びましょう。
- Q「指定したユーザーが見つかりません」
- A
ユーザー名が間違っている、またはローカルで存在しない可能性があります。
net user
コマンドで確認可能です。
セキュリティ的に気をつけるべきポイント
- Everyone にフル権限を付与するのは危険です。アクセス制限の意味がなくなります。
- ユーザー名を省略したり、ワイルドカード的に使うことはできません。
- システムファイルの権限を変更する前にバックアップを取っておくのが安心です。
まとめ
icacls
コマンドを使えば、WindowsのGUI画面では設定しづらい細かなファイル・フォルダ権限の操作が可能です。
ポイントまとめ:
- 読み取り権限の付与:
icacls "パス" /grant ユーザー名:R
- 権限のリセット:
icacls "パス" /reset
- 継承の無効化:
icacls "パス" /inheritance:r
コメント