🗂

Windowsのフォルダアクセス権限をコンソールで変更したい。

2024/07/09に公開

PowerShell を使用したフォルダのアクセス権限設定方法

PowerShell スクリプト

# フォルダのパス
$folderPath = "C:\work\hoge"

# ユーザー名
$user = "sample.user"

# フルコントロール権限を付与
icacls $folderPath /grant "$($user):(OI)(CI)F" /t

実行手順

  1. PowerShell を管理者として起動します。
  2. 上記のスクリプトをコピーして、PowerShell に貼り付けます。
  3. Enter キーを押して実行します。

このスクリプトを実行した後、再度権限を確認してみてください。権限の確認方法は以下の通りです。

icacls $folderPath

この結果に sample.user ユーザーに対する (OI)(CI)(F) 権限が含まれていることを確認してください。

もしそれでも権限が追加されない場合、ユーザー名やフォルダパスに間違いがないか再確認し、または以下のような詳細なエラーメッセージを確認してみてください。


icacls コマンドの使用方法解説

icacls コマンドは、ファイルやディレクトリのアクセス制御リスト (ACL) を操作するために使用されます。以下に、一般的な使用方法を解説します。

icacls コマンドの構文とオプション

コマンド 説明
ICACLS <名前> /save <ACL ファイル> [/T] [/C] [/L] [/Q] 名前が一致するすべてのファイルとフォルダーの DACL を <ACL ファイル> に格納して、後で /restore で指定できるようにします。SACL、所有者、整合性ラベルは保存されません。
ICACLS <ディレクトリ> [/substitute <旧 SID> <新 SID> [...]] /restore <ACL ファイル> [/C] [/L] [/Q] 格納されている DACL を <ディレクトリ> 内のファイルに適用します。
ICACLS <名前> /setowner <ユーザー> [/T] [/C] [/L] [/Q] すべての一致する名前の所有者を変更します。このオプションでは、所有権の変更を強制することはできません。所有権を変更するには、takeown.exe ユーティリティを使用してください。
ICACLS <名前> /findsid <SID> [/T] [/C] [/L] [/Q] <SID> が明示されている ACL を含むすべての一致する名前を検索します。
ICACLS <名前> /verify [/T] [/C] [/L] [/Q] ACL が正規の形式ではないか長さが ACE 数と一致しないすべてのファイルを検索します。
ICACLS <名前> /reset [/T] [/C] [/L] [/Q] すべての一致するファイルについて、ACL を継承された既定の ACL と置換します。
`ICACLS <名前> [/grant[:r] <SID>:perm[...]] [/deny <SID>:perm [...]] [/remove[:g :d]] <SID>[...]] [/T] [/C] [/L] [/Q] [/setintegritylevel Level:policy[...]]`

詳細なオプションの説明

オプション 説明
/grant[:r] <SID>:perm 指定されたユーザーにアクセス権を付与します。:r を指定すると、以前に付与されたすべての明示的なアクセス許可は新しいアクセス許可に置き換えられます。
/deny <SID>:perm 指定されたユーザーに対して明示的にアクセスを拒否します。
`/remove[:[g d]] <SID>`
/setintegritylevel [(CI)(OI)]レベル 整合性レベルを設定します。L (Low), M (Medium), H (High) のいずれかを指定します。

perm の指定方法

perm はアクセス許可マスクであり、次の 2 種類の方法で指定できます:

単純な権限の列挙

権限 説明
N アクセス権なし
F フルアクセス権
M 変更アクセス権
RX 読み取りと実行のアクセス権
R 読み取り専用アクセス権
W 書き込み専用アクセス権
D 削除アクセス権

特定の権限の列挙

権限 説明
DE 削除
RC 読み取り制御
WDAC DAC の書き込み
WO 所有者の書き込み
S 同期
AS システムセキュリティへのアクセス
MA 無制限
GR 一般的な読み取り
GW 一般的な書き込み
GE 一般的な実行
GA 一般的なすべての操作
RD データの読み取り/ディレクトリの一覧表示
WD データの書き込み/ファイルの追加
AD データの追加/サブディレクトリの追加
REA 拡張属性の読み取り
WEA 拡張属性の書き込み
X 実行/スキャン
DC 子の削除
RA 属性の読み取り
WA 属性の書き込み

継承権限

継承権限はどちらの形式の前にも配置でき、ディレクトリにのみ適用されます:

継承権限 説明
(OI) オブジェクト継承
(CI) コンテナー継承
(IO) 継承のみ
(NP) 継承を適用しない
(I) 親コンテナーから継承した権限

使用例

例1:ACL の保存

icacls c:\windows\* /save AclFile.txt /T

このコマンドは、c:\windows 以下のすべてのファイルとディレクトリの ACL を AclFile.txt に保存します。

例2:ACL の復元

icacls c:\windows\ /restore AclFile.txt

このコマンドは、AclFile.txt に保存されている ACL を c:\windows とそのサブディレクトリ内のファイルに適用します。

例3:特定のユーザーにアクセス権を付与

icacls <ファイル> /grant Administrator:(D,WDAC)

このコマンドは、Administrator ユーザーに対してファイルに削除および DAC 書き込みのアクセス許可を与えます。


Discussion