从网络上的共享驱动器导出文件夹列表

时间:2021-03-23 22:14:26

标签: powershell

希望这是一个快速而简单的过程。

我需要为我们的网络文件夹构建一棵树(使用 powershell)以进行审计。

我想从顶层开始,根文件夹并包含它下的所有内容。我知道这需要很长时间,但这对我没问题。

我对根驱动器拥有完全权限,并且继承性已打开,因此应该没有文件夹权限错误。

我想将树导出到 .csv 以使其看起来像这样

文件夹名称文件夹路径 文件夹 1 \root\path\folder1 Folder2 \root\path\folder2

这是我目前所拥有的:

$path = "root\path\folder"
$reportPath = "C:\scripts

Get-ChildItem $Path -Recurse -Directory | Select-object psPath,psChildName | Export-CSV -path $reportPath

这给了我正在寻找的结果,但我在 PSPath 中得到了可怕的“Microsoft.PowerShell.Core\FileSystem::”。

有谁知道我需要添加什么来隐藏路径的前体?

1 个答案:

答案 0 :(得分:1)

FullName 可能是您所追求的属性。如果您想让 CSV 属性显示“文件夹名称”和“文件夹路径”,您可以将计算属性与 Select-Object 结合使用,也可以在 foreach-object 循环中创建您自己的对象。

Get-ChildItem $Path -Recurse -Directory |
    Select-object @{n='Folder Name';e='Name'},@{n='Folder Path';e='FullName'} |
        Export-Csv -path $reportPath -NoTypeInformation

Get-ChildItem $Path -Recurse -Directory | ForEach-Object {
    [PSCustomObject]@{
        'Folder Name' = $_.Name
        'Folder Path' = $_.FullName
    }
} | Export-Csv -path $reportPath -NoTypeInformation