【 Set-SmbPathAcl 】コマンドレット――共有アクセス権を「フォルダのアクセス権」として設定するWindows PowerShell基本Tips(86)

本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Set-SmbPathAcl」コマンドレットを解説します。

» 2023年10月13日 05時00分 公開
[後藤諭史@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windows PowerShell基本Tips」のインデックス

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、共有フォルダに設定されているアクセス権を「フォルダのアクセス権」として設定する「Set-SmbPathAcl」コマンドレットです。

Set-SmbPathAclコマンドレットとは?

 Windowsのファイルシステムである「NTFS(NT File System)」や「ReFS(Resilient File System)」では、ファイルやフォルダに対し「アクセス権」(Access Control List:ACL)を設定できます。

 本連載の第82回から3回に分けて紹介した「Set-Acl」コマンドレットを使用することで、ファイルやフォルダにアクセス権を設定できます。しかし、ネットワーク経由でフォルダ(ファイル)にアクセスする場合、2つのアクセス権、すなわち「共有アクセス権」と「フォルダ(ファイル)アクセス権」を有していないと、ユーザーはフォルダ(ファイル)にアクセスできません。

 通常はこの2つのアクセス権を個別に設定しますが、Set-SmbPathAclコマンドレットを使用することで、共有アクセス権を「フォルダのアクセス権」として設定でき、個別に設定する手間を省くことができます。

 しかしながら、このコマンドレットを使用する際は挙動をしっかりと理解する必要があるため、考え方と実行例を参考に理解を深めてください。

Set-SmbPathAclコマンドレットの書式

Set-SmbPathAcl [オプション]


Set-SmbPathAclコマンドレットの主なオプション

オプション 意味
-ShareName アクセス権を設定する共有フォルダを指定する。必須


基本的なSet-SmbPathAclコマンドレットの考え方と実行例

 Set-SmbPathAclコマンドレットは、「共有フォルダのACLを、共有設定されているフォルダのACLとして設定する」コマンドレットになります。

 従って、共有アクセス権とフォルダのアクセス権に差異があった場合は、共有アクセス権として設定されているACLをフォルダのACLとして「設定」します。アクセス権を設定する対象は「共有設定されているフォルダ」となります。

 このフォルダに格納されているファイルやサブフォルダに関しては、「継承」の設定が有効でない限り適用されません。また、設定されるフォルダアクセス権は「上位フォルダから継承したアクセス権」と「共有アクセス権」となります。この場合、共有設定しているフォルダで親フォルダからの継承を無効化していても、継承が有効になった上で共有アクセス権の設定がコピーされます。

 では、具体的な例を見ていきましょう。

 例えば、「TestFolder_01」というフォルダがあり、画面1のようなフォルダアクセス権が設定されているとします。継承設定は無効になっていることが確認できます。

ALT 画面1 「TestFolder_01」フォルダのアクセス権と継承設定

 このフォルダに設定されている共有アクセス権は、画面2の通り、「stenson」と「watson」の両アカウントに「フルコントロール」が与えられています。

ALT 画面2 「TestFolder_01」フォルダの共有アクセス権

 この状態でSet-SmbPathAclコマンドレットを実行します(画面3)。なお、Set-SmbPathAclコマンドレットは管理者権限での実行は求められません。コマンドレットの実行ユーザーの権限の範囲内で設定します。

コマンドレット実行例

Set-SmbPathAcl -ShareName "TestFolder_01"

ALT 画面3 Set-SmbPathAclコマンドレットで「TestFolder_01」フォルダのファイルACLを設定した

 Set-SmbPathAclコマンドレット実行後、「TestFolder_01」フォルダのアクセス権は画面4のようになっており、共有アクセス権のACLが設定されているものの、無効化していた継承が復活していることが分かります。

ALT 画面4 「TestFolder_01」フォルダには共有アクセス権と同じACLが設定されているものの、継承の設定が復活している

 この状態で共有アクセス権の設定を変更し、「stenson」は「変更」と「読み取り」、「watson」は「読み取り」のみの権限とし、再度Set-SmbPathAclコマンドレットを実行します。

 この場合に設定されるアクセス権は画面5のようになります。

ALT 画面5 共有アクセス権を変更してコマンドレットを実行した結果

 以上のように、共有アクセス権がどのようにフォルダのアクセス権として設定されるかを理解した上で、Set-SmbPathAclコマンドレットを使用することが重要になります。

 なお、Set-SmbPathAclコマンドレットで設定したフォルダに格納されているファイルのアクセス権を確認すると、継承が設定されていないため、Set-SmbPathAclコマンドレットによるアクセス権設定の影響を受けていないことが確認できます(画面6)。

ALT 画面6 継承が設定されていないファイルにSet-SmbPathAclコマンドレットは影響を及ぼさない

 従って、Set-SmbPathAclコマンドレットは運用中の共有フォルダで使用する際は「親フォルダの権限の継承」と「配下のファイル/フォルダの権限の継承」を意識して使用する必要があり、共有フォルダを作成する際は「親フォルダの権限の継承」を意識してフォルダ構造そのものを作り込む必要があります。

 それらの特性を意識して共有フォルダを設計することで、本コマンドレットを効果的に使用することが可能となります。

筆者紹介

後藤 諭史(ごとう さとし)

Microsoft MVP for Cloud and Datacenter Management(2012-2024)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

4AI by @IT - AIを作り、動かし、守り、生かす
Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。