本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Set-SmbPathAcl」コマンドレットを解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、共有フォルダに設定されているアクセス権を「フォルダのアクセス権」として設定する「Set-SmbPathAcl」コマンドレットです。
Windowsのファイルシステムである「NTFS(NT File System)」や「ReFS(Resilient File System)」では、ファイルやフォルダに対し「アクセス権」(Access Control List:ACL)を設定できます。
本連載の第82回から3回に分けて紹介した「Set-Acl」コマンドレットを使用することで、ファイルやフォルダにアクセス権を設定できます。しかし、ネットワーク経由でフォルダ(ファイル)にアクセスする場合、2つのアクセス権、すなわち「共有アクセス権」と「フォルダ(ファイル)アクセス権」を有していないと、ユーザーはフォルダ(ファイル)にアクセスできません。
通常はこの2つのアクセス権を個別に設定しますが、Set-SmbPathAclコマンドレットを使用することで、共有アクセス権を「フォルダのアクセス権」として設定でき、個別に設定する手間を省くことができます。
しかしながら、このコマンドレットを使用する際は挙動をしっかりと理解する必要があるため、考え方と実行例を参考に理解を深めてください。
オプション | 意味 |
---|---|
-ShareName | アクセス権を設定する共有フォルダを指定する。必須 |
Set-SmbPathAclコマンドレットは、「共有フォルダのACLを、共有設定されているフォルダのACLとして設定する」コマンドレットになります。
従って、共有アクセス権とフォルダのアクセス権に差異があった場合は、共有アクセス権として設定されているACLをフォルダのACLとして「設定」します。アクセス権を設定する対象は「共有設定されているフォルダ」となります。
このフォルダに格納されているファイルやサブフォルダに関しては、「継承」の設定が有効でない限り適用されません。また、設定されるフォルダアクセス権は「上位フォルダから継承したアクセス権」と「共有アクセス権」となります。この場合、共有設定しているフォルダで親フォルダからの継承を無効化していても、継承が有効になった上で共有アクセス権の設定がコピーされます。
では、具体的な例を見ていきましょう。
例えば、「TestFolder_01」というフォルダがあり、画面1のようなフォルダアクセス権が設定されているとします。継承設定は無効になっていることが確認できます。
このフォルダに設定されている共有アクセス権は、画面2の通り、「stenson」と「watson」の両アカウントに「フルコントロール」が与えられています。
この状態でSet-SmbPathAclコマンドレットを実行します(画面3)。なお、Set-SmbPathAclコマンドレットは管理者権限での実行は求められません。コマンドレットの実行ユーザーの権限の範囲内で設定します。
Set-SmbPathAcl -ShareName "TestFolder_01"
Set-SmbPathAclコマンドレット実行後、「TestFolder_01」フォルダのアクセス権は画面4のようになっており、共有アクセス権のACLが設定されているものの、無効化していた継承が復活していることが分かります。
この状態で共有アクセス権の設定を変更し、「stenson」は「変更」と「読み取り」、「watson」は「読み取り」のみの権限とし、再度Set-SmbPathAclコマンドレットを実行します。
この場合に設定されるアクセス権は画面5のようになります。
以上のように、共有アクセス権がどのようにフォルダのアクセス権として設定されるかを理解した上で、Set-SmbPathAclコマンドレットを使用することが重要になります。
なお、Set-SmbPathAclコマンドレットで設定したフォルダに格納されているファイルのアクセス権を確認すると、継承が設定されていないため、Set-SmbPathAclコマンドレットによるアクセス権設定の影響を受けていないことが確認できます(画面6)。
従って、Set-SmbPathAclコマンドレットは運用中の共有フォルダで使用する際は「親フォルダの権限の継承」と「配下のファイル/フォルダの権限の継承」を意識して使用する必要があり、共有フォルダを作成する際は「親フォルダの権限の継承」を意識してフォルダ構造そのものを作り込む必要があります。
それらの特性を意識して共有フォルダを設計することで、本コマンドレットを効果的に使用することが可能となります。
Microsoft MVP for Cloud and Datacenter Management(2012-2024)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.