PowerShell でフォルダーのアクセス許可を設定する

Rohan Timalsina 2024年2月16日
PowerShell でフォルダーのアクセス許可を設定する

ACL (アクセス制御リスト) は、ファイルまたはリソースにアクセスするためのユーザーの許可とユーザー グループを表します。 これは、アクセス制御エントリ (ACE) の順序付きリストです。

アクセス制御エントリを追加する場合、許可または拒否されるアクセス権を定義し、フォルダーに対するユーザーおよびグループのアクセス許可を設定できます。 ファイル エクスプローラーの GUI を使用して、Windows でフォルダーのアクセス許可を簡単に設定または変更できます。

このチュートリアルでは、PowerShell を使用してフォルダーのアクセス許可を設定する方法を学習します。

Set-Acl コマンドレットを使用して、PowerShell でフォルダーのアクセス許可を設定する

ACL は、セキュリティ デポジットに情報を保存します。 セキュリティ記述子には、システム ACL (SACL) と随意 ACL (DACL) の 2つの ACL タイプがあります。

DACL の各 ACE には、次の 3 種類の情報が含まれています。

  1. セキュリティ識別子 (SID): SID は、ACE が誰に適用されるかを決定します。 単一のユーザーまたはユーザーのグループにすることができます。
  2. アクセス権のセット: アクセス権は、オブジェクトに対して特定の操作を実行する権利です。 詳しくはアクセス権をご覧ください。
  3. アクセス権のセットが許可されているか拒否されているか。

Set-Acl は、指定されたファイルまたはリソースのセキュリティ記述子を変更します。 -AclObject パラメータの値として指定されたセキュリティ記述子を適用します。

次の例では、新しい ACL ルールをフォルダー C:\pc\computing の既存のアクセス許可に追加します。

$acl = Get-Acl -Path "C:\pc\computing"
$ace = New-Object System.Security.Accesscontrol.FileSystemAccessRule ("testuser", "Read", "Allow")
$acl.AddAccessRule($ace)
Set-Acl -Path "C:\pc\computer" -AclObject $acl

最初のコマンドは、C:\pc\computing の既存の ACL ルールを取得します。 2 番目のコマンドは、フォルダーに適用する新しい FileSystemAccessRule を作成します。

3 番目のコマンドは、フォルダーの既存のアクセス許可に新しい ACL 規則を追加します。 4 番目のコマンドは、Set-Acl を使用して、新しい ACL をフォルダーに適用します。

次のコマンドを使用して、フォルダーの ACL を表示できます。

Get-Acl C:\pc\computing | Format-List

出力:

Path   : Microsoft.PowerShell.Core\FileSystem::C:\pc\computing
Owner  : DelftStack\rhntm
Group  : DelftStack\rhntm
Access : DelftStack\testuser Allow  Read, Synchronize
         DelftStack\rhntm Allow  FullControl
Audit  :
Sddl   : O:S-1-5-21-1715350875-4262369108-2050631134-1001G:S-1-5-21-1715350875-4262369108-2050631134-1001D:AI(A;;FR;;;S-1-5-21-1715350875-4262369108-2050631134-1003)(A;OICIID;FA;;;S-1-5-21-1715350875-4262
         369108-2050631134-1001)

ご覧のとおり、ユーザー testuser はフォルダーに対する読み取り権限を持っています。 スクリプトを使用して、多数のフォルダーとファイルにアクセス許可を簡単かつ迅速に設定できます。

また、PowerShell を使用してフォルダーにアクセス許可を再帰的に設定する の方法に関する記事も参照してください。

著者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

関連記事 - PowerShell Folder