得寸进尺的鸡丝面 2023-09-14 10:27 采纳率: 0%
浏览 3

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

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

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2023-09-14 11:03
    关注

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

    要获取共享文件夹的权限并生成到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 文件中。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 9月14日