本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Get-Acl」コマンドレットを解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、コンピュータ上のファイルやフォルダに設定されたアクセス権情報を取得する「Get-Acl」コマンドレットです。
本連載の第67回で紹介した「Grant-SmbShareAccess」コマンドレットや第70回で紹介した「Revoke-SmbShareAccess 」コマンドレットは、Windowsの共有フォルダに対するアクセス権、つまり「共有アクセス権」を設定するコマンドレットでした。
Windowsのファイルシステムである「NTFS(NT File System)」や「ReFS(Resilient File System)」では、ファイルやフォルダに対するアクセス権(Access Control List:ACL)を設定できます。Get-Aclコマンドレットは、そのアクセス権を取得するものです。
アクセス権は、GUIの「エクスプローラー」や「icacls」コマンドでも確認できます。しかし、スクリプトによる高度な管理を実施したい場合には、PowerShellコマンドレットによる確認が便利です。
オプション | 意味 |
---|---|
-Path | アクセス権情報を取得したいファイルもしくはフォルダのパスを指定する。省略可能 |
-Include | ワイルドカード(*)を含む文字列を指定し、条件一致した項目だけを取得する。省略可能 |
-Exclude | ワイルドカードを含む文字列を指定し、条件一致した項目を除外してその他を取得する。省略可能 |
オプションを指定せずにGet-Aclコマンドレットを実行すると、現在のカレントフォルダのアクセス権を取得します(画面1)。なお、Get-Aclコマンドレットは管理者権限を必要としません。コマンドレットを実行するユーザーの権限の範囲内で情報を取得します。
Get-Acl
「Format-List(FL)」コマンドレットを併用すると、より詳細な情報を取得することができます(画面2)。
Get-Acl | FL
「Path」オプションでファイルパスを指定してGet-Aclコマンドレットを実行することで、指定されたパスのファイルのアクセス権を取得できます。なお、ファイルパスにもワイルドカードが使用できるため、実行例ではカレントフォルダにある全てのファイルのアクセス権を取得しています(画面3)。
Get-Acl -Path *.*
こちらもFormat-List(FL)コマンドレットを併用することで、より詳細な情報を取得可能です。以下の実行例では、-Pathオプションで拡張子を指定して取得しています(画面4)。
Get-Acl -Path *.docx | FL
「-Exclude」オプションを使用することで、-Pathオプションだけでは指定できない抽出条件を設定できます。実行例では「.pptx」の拡張子を含むファイルで、かつファイル名に「_(アンダースコア)」が含まれていないファイルのみを抽出しました(画面5)。-Excludeオプションを使用しないGet-Aclコマンドレットの結果と比較しても、「_」が含まれるファイルが除外されていることが分かります。
Get-Acl -Path *.pptx -Exclude *_*
Get-Aclコマンドレットでは、ファイルやフォルダのアクセス権だけではなく、レジストリなどのオブジェクトのアクセス権も取得できます(画面6)。
Get-Acl -Path HKLM:\System\CurrentControlSet\Control | FL
Microsoft MVP for Cloud and Datacenter Management(2012-2023)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.