[登録されているタグ]

[記事公開日]2025/12/18

PowerShellでアクセス権を設定する|Set-Aclの使い方

📝 はじめに

PowerShellでファイルやフォルダの管理をしていると、
「特定のユーザーだけ操作できるようにしたい」
「アクセス権を一括で変更したい」
「GUIではなくスクリプトで権限を統一したい」
という場面に出会います。

こうしたアクセス権の設定・変更を行うためのコマンドが
Set-Acl です。
Get-Acl と組み合わせることで、
PowerShellから柔軟にアクセス権を制御できます。

こんな場面で便利

  • フォルダのアクセス権を変更したい
  • 複数ファイルに同じ権限を設定したい
  • 権限設定をスクリプトで自動化したい

✅ このコマンドでできること(要点)

  • ファイル・フォルダのアクセス権を変更できる
  • ユーザーやグループごとの権限を設定できる
  • ACLをコピーして一括適用できる
  • 管理作業を自動化できる

✅ Set-Acl でできること

Set-Acl は、
Get-Acl で取得した
アクセス制御リスト(ACL)
別のファイルやフォルダに適用するためのコマンドです。

単体で使うことは少なく、
「取得 → 編集 → 適用」
という流れで使うのが基本になります。

🧩 基本構文

Set-Acl -Path 対象パス -AclObject ACLオブジェクト

事前に取得・編集した ACL オブジェクトを指定します。

▶ 基本的な使い方(まずこれだけ)

🔹 別のフォルダに同じアクセス権を適用する

$acl = Get-Acl C:\Source
Set-Acl -Path C:\Target -AclObject $acl

C:\Source のアクセス権を
C:\Target にそのまま適用します。

🔹 ファイルにアクセス権を適用する

$acl = Get-Acl C:\Template\file.txt
Set-Acl -Path C:\Work\file.txt -AclObject $acl

権限テンプレートとして使うケースです。

🛠 よく使われる指定例

🔹 複数フォルダに同じ権限を設定する

$acl = Get-Acl C:\Base
Get-ChildItem C:\Projects -Directory |
ForEach-Object {
    Set-Acl $_.FullName $acl
}

一括で権限を揃えたい場合に有効です。

🔹 権限変更後に確認する

Get-Acl C:\Target | Select-Object -ExpandProperty Access

変更結果を必ず確認しましょう。

💼 実務でよく使う使用例(応用)

🔹 作業用フォルダに統一した権限を付与する

$acl = Get-Acl C:\WorkTemplate
Set-Acl -Path C:\Work\ProjectA -AclObject $acl
Set-Acl -Path C:\Work\ProjectB -AclObject $acl

🔹 新規作成後にアクセス権を調整する

New-Item C:\Share\Data -ItemType Directory
$acl = Get-Acl C:\Share\Template
Set-Acl C:\Share\Data $acl
組み合わせ例

  • Get-Acl で権限取得
  • Get-ChildItem で一括処理
  • テンプレートACLを作って再利用

🧩 よくある勘違い・つまずきポイント

  • Set-Acl 単体では権限内容を指定できない
  • 誤ったACLを適用するとアクセス不能になる
  • 管理者権限が必要な場合がある
  • 継承設定も含めてコピーされる
  • -Force では権限問題は解決しない

🔄 cmdとの違いについて

cmd では icacls を使って
直接権限を指定しますが、
PowerShell では
Get-Acl / Set-Acl によって
権限をオブジェクトとして扱うのが特徴です。

その分、再利用性や自動化に優れています。

⚠ エラー・うまく動かないときの確認ポイント

  • 適用先パスが正しいか
  • 管理者権限で実行しているか
  • 誤ったACLを使っていないか
  • 継承設定の影響を受けていないか

🧠 注意点

Set-Acl
システムや共有フォルダの安全性に
直接影響する操作です。
実務では必ず
テスト環境で検証 → 本番適用
という手順を踏むようにしましょう。

📌 まとめ

  • Set-Acl はアクセス権を設定・適用するコマンド
  • Get-Acl とセットで使うのが基本
  • 一括設定・自動化に非常に強力
  • 誤操作防止のため慎重な運用が必要

🔎 PowerShellコマンドを探す

やりたいことからコマンドを探すこともできます。

  • アクセス権を変更したい
  • フォルダの権限を統一したい
  • 権限設定を自動化したい
  • 共有フォルダを管理したい
  • エラーや実行できない原因を調べたい
  • PowerShellで管理作業を効率化したい
  • 安全に権限を設定したい
Generic filters

サイト内検索(入力すると候補が出ます)

Generic filters


Generic filters

Generic filters

すべてを開く | すべてを閉じる
ページ上部へ戻る