希望这是一个快速而简单的过程。
我需要为我们的网络文件夹构建一棵树(使用 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::”。
有谁知道我需要添加什么来隐藏路径的前体?
答案 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