PowerShellを使って特定のフォルダにアクセス権限を持つユーザーやグループを一覧表示する技術について、初心者にも理解しやすいように詳しく説明します。この記事では、基本的なコードの作成からその解説、さらには応用例までを網羅しています。
目次
前提知識
PowerShellはWindows環境でスクリプトを実行するためのコマンドラインインターフェースです。基本的なコマンドから高度なスクリプトまで多岐にわたるタスクを自動化することができます。
PowerShellのインストール
PowerShellはWindows 7以降に標準でインストールされていますが、最新バージョンを使用する場合はMicrosoftの公式サイトからダウンロード可能です。
管理者権限
この操作には管理者権限が必要です。PowerShellを開く際に「管理者として実行」を選択してください。
基本コード
以下が特定のフォルダ(この例ではC:\Example)のアクセス権限を持つユーザーやグループを一覧表示する基本的なPowerShellスクリプトです。
# PowerShellスクリプトを管理者権限で実行する必要があります。
# 指定したフォルダのパス(この例ではC:\Example)
$folderPath = "C:\Example"
# アクセス権限を一覧表示する
(Get-Acl $folderPath).Access | ForEach-Object {
# アクセス権限があるユーザーまたはグループ名とその権限レベルを表示
Write-Host ("{0} は {1} の権限があります。" -f $_.IdentityReference, $_.FileSystemRights)
}
コードの解説
Get-Acl $folderPath
: 指定したフォルダのセキュリティ情報(アクセス権限など)を取得します。.Access
: セキュリティ情報からアクセス権限に関する部分だけを抽出します。ForEach-Object
: 抽出したアクセス権限ごとにループ処理を行います。Write-Host
: コンソールにテキストを出力します。
権限レベルについて
権限レヴェル(FileSystemRights
)は、Read(読み取り)、Write(書き込み)、FullControl(フルコントロール)などがあります。
応用例
特定のユーザーだけを対象にしたい場合、以下のようにスクリプトを変更できます。
# 特定のユーザー(この例では"Username")だけのアクセス権限を表示
(Get-Acl $folderPath).Access | Where-Object { $_.IdentityReference -like "Username" } | ForEach-Object {
Write-Host ("{0} は {1} の権限があります。" -f $_.IdentityReference, $_.FileSystemRights)
}
まとめ
PowerShellを用いて特定のフォルダにアクセス権限を持つユーザーやグループを一覧表示する方法を解説しました。基本コードから応用例まで詳細にわたって説明していますので、ぜひ参考にしてください。
コメント