PowerShellで共有フォルダのアクセス権を一覧表示する
ファイルサーバーの移行などにより、Windows共有フォルダのパスやアクセス権を一覧出力したい場合があります。ここでは、Powershellで確認する方法を紹介します。
※一般的には、アクセス制御は、共有フォルダのアクセス権ではEveryone
/Full control
を設定し、NTFSのアクセス権で細かく制御することが多いと思います。
共有フォルダのパス確認
共有フォルダのパスは、Get-SmbShare
で確認できます。
1PS C:\> Get-SmbShare
2
3Name ScopeName Path Description
4---- --------- ---- -----------
5ADMIN$ * C:\WINDOWS Remote Admin
6C$ * C:\ Default share
7IPC$ * Remote IPC
8Share * D:\Share
9Share2 * D:\Share2
管理共有やIPC$共有を非表示にする場合は、-Special $false
オプションを使用します。
1PS C:\> Get-SmbShare -Special $false
2
3Name ScopeName Path Description
4---- --------- ---- -----------
5Share * D:\Share
6Share2 * D:\Share2
共有フォルダのアクセス権の一覧表示
共有フォルダのアクセス権を一覧表示するには、Get-SmbShare
とGet-SmbShareAccess
を使用します。
1PS C:\> Get-SmbShare -Special $false | ForEach-Object { Get-SmbShareAccess $_.Name }
2
3Name ScopeName AccountName AccessControlType AccessRight
4---- --------- ----------- ----------------- -----------
5Share * Everyone Allow Full
6Share2 * Everyone Allow Full
まとめ
ファイルサーバーで共有フォルダが多数ある場合は、ここで紹介したコマンドで簡単に確認することが可能です。