我正在使用PowerShell 4并创建了一个脚本,该脚本将文本文件中列出的共享并将ACL信息输出到CSV文件。问题是,我无法弄清楚如何导出包括文件夹路径。这里是我的脚本:将Get-ACL导出为包含路径的CSV
$InputFile = "C:\Folders.txt"
$OutputFile = "C:\FolderPermissions.csv"
$FolderList = Get-Content $InputFile
ForEach ($Folder in $FolderList)
{
$Permissions = (Get-ACL $Folder).access
$Report += $Permissions
}
$Report | Select-Object IdentityReference,FileSystemRights,IsInherited | Export-CSV $OutputFile -NoTypeInformation
我已经成功添加和使用下面的线单一文件夹导出它,但只要我结合对象的唯一列名被出口,没有值。
$Folder = "\\server\share"
$Name=Folder
$Permissions = (Get-ACL $Folder).access
$Permissions | Add-Member -MemberType NoteProperty -Name $Name -Value $Folder
$Permissions | Select-Object Folder,IdentityReference,FileSystemRights,IsInherited | Export-CSV $OutputFile -NoTypeInformation
解决方案:
再次感谢你们! MFT的答案通过一些调整来解决它。这是我想要的过滤器的工作代码。请注意,.IsInherited过滤器使用-eq“TRUE”返回不正确的数据,但成功使用-ne“FALSE”。
$InputFile = "C:\Folders.txt"
$OutputFile = "C:\FolderPermissions.csv"
$FolderList = Get-Content $InputFile
ForEach ($Folder in $FolderList)
{
$Permissions = (Get-ACL $Folder).access | ForEach-Object {$_ |
Add-Member -MemberType NoteProperty -Name Folder -Value $Folder}
$Report += $Permissions
}
$Report | Select-Object Folder,IdentityReference,FileSystemRights,IsInherited |
Where {$_.Folder -ne $Null -and $_.IdentityReference -like "HARRAHS*" -and $_.IsInherited -ne "TRUE"} |
Export-CSV $OutputFile -NoTypeInformation
看起来只是一个错字。您将ACL存储在'$ Permissions'中,但将成员添加到'$ Permission'。 – 2014-09-27 11:39:43
在创建问题时,这两个错误类型。现在修复。 – AKAJim 2014-09-27 14:20:29
您能否提供可与此解决方案配合使用的输入文件的格式? – Damainman 2015-07-06 14:37:54