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-SmbShareGet-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

まとめ

ファイルサーバーで共有フォルダが多数ある場合は、ここで紹介したコマンドで簡単に確認することが可能です。


翻訳: