【问题标题】:PS - Get All SMB shares with permissionsPS - 获取所有具有权限的 SMB 共享
【发布时间】:2021-10-09 08:25:38
【问题描述】:

我正在尝试获取我的 windows 服务器上的所有 smb 共享,并对其所有用户权限进行库存检查。

这就是我所拥有的:

$Shares = Get-SmbShare

foreach($Share in $Shares)
{
    Get-SmbShareAccess -Name $Share.Name | Where-Object {$_.AccountName -Match "DOMAINNAME"} 
}

这让我获得了所有域用户的共享以及他们拥有的访问权限。

但它只显示文件夹的名称。我希望它会在服务器上显示完整路径(不是 UNC)

它可以以 csv 格式导出。

当我这样做时:

$Shares = Get-SmbShare

foreach($Share in $Shares)
{
    Get-SmbShareAccess -Name $Share.Name | Where-Object {$_.AccountName -Match "PRAGUELOFTS"} | Export-Csv -Path C:\perms.csv
}

它只导出最后一个用户。

【问题讨论】:

    标签: windows powershell server acl


    【解决方案1】:

    当您将散列数组传递给 Select-Object 时,您可以非常精确地定义输出列:@{name="xyz"; expr={ calculated value }}

    通过这种方式,您可以将来自多个来源的值(例如“共享”和“共享访问”)以及手动计算的值统一到一个自定义结果中。

    Get-SmbShare | Where-Object Special -eq $false | ForEach-Object {
        $share = $_
        $share | Get-SmbShareAccess | Where-Object AccountName -Match "DOMAINNAME" | Select-Object @(
            @{name="UncPath";   expr={ "\\" + $env:COMPUTERNAME + "\" + $share.Name }}
            @{name="LocalPath"; expr={ $share.Path }}
            @{name="Account";   expr={ $_.AccountName }}
            @{name="Type";      expr={ $_.AccessControlType }}
            @{name="Right";     expr={ $_.AccessRight }}
        )
    }
    

    然后您可以继续将其输入Export-Csv -Path C:\perms.csv


    至于你的第二个问题——这个

    foreach ($Share in $Shares)
    {
        Get-SmbShareAccess -Name $Share.Name | Export-Csv -Path C:\perms.csv
    }
    

    只为您提供 CSV 文件中的最后一个结果,因为它的字面意思是“为每个共享写入一个 CSV 文件”。您在每次循环迭代中不断覆盖同一个文件。

    先将所有结果收集到一个变量中

    $results = foreach ($Share in $Shares) {
        # ...
    }
    

    然后创建输出文件

    $results | Export-Csv -Path C:\perms.csv
    

    【讨论】:

    • 你真是个天才。正是我需要的。不知道我能做到。标记为正确答案。
    • @JohnyWave 如果你想节省一些输入,可以将其缩短为@{n="xyz"; e={ calculated value }},但我个人更喜欢更易于阅读的脚本。
    猜你喜欢
    • 2023-03-16
    • 2022-01-18
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 2023-04-04
    相关资源
    最近更新 更多