如何获取共享文件夹的权限到excel

服务器中有多个文件夹,使用域账户进行管理,每个文件夹的权限不同,如何取到所有文件夹的权限并生成到excel中

引用 皆我百晓生 小程序回复内容作答:

要获取共享文件夹的权限并生成到Excel中,可以使用 PowerShell 脚本来实现。以下是一种可能的解决方案:

  1. 在服务器上打开 PowerShell 窗口。

  2. 使用以下命令获取所有共享文件夹的名称和路径:

$shares = Get-WmiObject -Query "SELECT * FROM Win32_Share"

foreach ($share in $shares) {
    $share.Name
    $share.Path
}
  1. 使用以下命令获取每个共享文件夹的权限:
foreach ($share in $shares) {
    $share.Name
    $share.Path
    
    $acl = Get-Acl $share.Path
    foreach ($access in $acl.Access) {
        $access.IdentityReference.Value
        $access.FileSystemRights
        $access.AccessControlType
    }
}
  1. 将输出结果保存到一个变量中,以便后续处理:
$results = @()

foreach ($share in $shares) {
    $shareName = $share.Name
    $sharePath = $share.Path

    $acl = Get-Acl $sharePath
    foreach ($access in $acl.Access) {
        $entry = New-Object -TypeName PSObject
        $entry | Add-Member -MemberType NoteProperty -Name "ShareName" -Value $shareName
        $entry | Add-Member -MemberType NoteProperty -Name "SharePath" -Value $sharePath
        $entry | Add-Member -MemberType NoteProperty -Name "IdentityReference" -Value $access.IdentityReference.Value
        $entry | Add-Member -MemberType NoteProperty -Name "FileSystemRights" -Value $access.FileSystemRights
        $entry | Add-Member -MemberType NoteProperty -Name "AccessControlType" -Value $access.AccessControlType
        
        $results += $entry
    }
}
  1. 使用以下命令将结果输出到 Excel 文件中:
$results | Export-Excel -Path "C:\Path\To\Output.xlsx"

在运行脚本之前,请确保已经安装了 PowerShell 和 ImportExcel 模块。若尚未安装 ImportExcel 模块,可使用以下命令来安装:

Install-Module -Name ImportExcel

通过按照上述步骤操作,你应该能够获取服务器上所有共享文件夹的权限,并将结果生成到 Excel 文件中。