🗂
Windowsのフォルダアクセス権限をコンソールで変更したい。
PowerShell を使用したフォルダのアクセス権限設定方法
PowerShell スクリプト
# フォルダのパス
$folderPath = "C:\work\hoge"
# ユーザー名
$user = "sample.user"
# フルコントロール権限を付与
icacls $folderPath /grant "$($user):(OI)(CI)F" /t
実行手順
- PowerShell を管理者として起動します。
- 上記のスクリプトをコピーして、PowerShell に貼り付けます。
- 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