如何用PowerShell批量获取Windows Server 2012R2所有共享及权限?
批量获取Windows Server 2012R2所有共享文件夹权限
可以用PowerShell组合命令批量遍历所有共享并导出权限信息,具体操作如下:
直接在控制台查看所有共享权限(排除系统隐藏共享)
运行以下PowerShell命令,会实时输出每个共享的详细权限信息:Get-SmbShare | Where-Object { $_.Name -notmatch '^\$' } | ForEach-Object { $shareName = $_.Name $sharePath = $_.Path Get-SmbShareAccess -Name $shareName | ForEach-Object { [PSCustomObject]@{ 共享名称 = $shareName 共享路径 = $sharePath 权限组/用户 = $_.AccountName 权限类型 = $_.AccessControlType 权限 = $_.AccessRight } } }导出为CSV文件(方便后续整理查看)
如果需要把结果保存成表格文件,在命令末尾加上导出参数,指定保存路径即可:Get-SmbShare | Where-Object { $_.Name -notmatch '^\$' } | ForEach-Object { $shareName = $_.Name $sharePath = $_.Path Get-SmbShareAccess -Name $shareName | ForEach-Object { [PSCustomObject]@{ 共享名称 = $shareName 共享路径 = $sharePath 权限组/用户 = $_.AccountName 权限类型 = $_.AccessControlType 权限 = $_.AccessRight } } } | Export-Csv -Path "C:\共享权限列表.csv" -Encoding UTF8 -NoTypeInformation
补充说明
- 命令中的
Where-Object { $_.Name -notmatch '^\$' }是用来过滤名称以$结尾的系统隐藏共享(比如ADMIN$、C$),如果需要包含这些共享,直接删除这一段代码即可。 - 最终输出的结果会清晰展示每个共享的名称、路径、对应的权限组/用户、权限类型(允许/拒绝)以及具体权限(读取/修改等)。
内容的提问来源于stack exchange,提问作者Spacewalker
相关产品推荐
相关产品推荐

