PowerShell 共享 ACL 列表
PowerShell Shares ACL List
我有这个脚本进入一个共享驱动器的每个文件并列出 ACL,但我不希望它走这么远,因为有数百万个文件,它永远不会完成 (运行 一天多,得到一个超过 6 GB 的 csv 文件)。
我尝试使用 get-childitem *** 但它似乎不起作用。任何帮助将不胜感激。理想情况下,只有 2 层深会很好。感谢
$ErrorActionPreference = "Continue"
$strComputer = $env:ComputerName
$colDrives = Get-PSDrive -PSProvider Filesystem
#IF ($DriveLetter -eq "N:\")
$StartPath = "N:"
Get-ChildItem $StartPath\*\*\ -Recurse |
ForEach {
$FullPath = Get-Item -LiteralPath (Get-Item -LiteralPath $_.PSPath)
(Get-Item -LiteralPath $FullPath).GetAccessControl() |
Select * -Expand Access |
Select @{N='Server Name';E={$strComputer}},
@{N='Full Path';E={$FullPath}},
@{N='Type';E={If($FullPath.PSIsContainer -eq $True) {'D'} Else {'F'}}},
@{N='Owner';E={$_.Owner}},
@{N='Trustee';E={$_.IdentityReference}},
@{N='Inherited';E={$_.IsInherited}},
@{N='Inheritance Flags';E={$_.InheritanceFlags}},
@{N='Ace Flags';E={$_.PropagationFlags}},
@{N='Ace Type';E={$_.AccessControlType}},
@{N='Access Masks';E={$_.FileSystemRights}} } |
Export-CSV -NoTypeInformation –Path "C:\stuff\NDriveShares.csv"
您可以让它忽略文件本身,只获取具有类似内容的文件夹...
Get-ChildItem -Recurse | ?{ $_.PSIsContainer }
那应该只获取 "IsContainer"
的文件夹或东西
我有这个脚本进入一个共享驱动器的每个文件并列出 ACL,但我不希望它走这么远,因为有数百万个文件,它永远不会完成 (运行 一天多,得到一个超过 6 GB 的 csv 文件)。
我尝试使用 get-childitem *** 但它似乎不起作用。任何帮助将不胜感激。理想情况下,只有 2 层深会很好。感谢
$ErrorActionPreference = "Continue"
$strComputer = $env:ComputerName
$colDrives = Get-PSDrive -PSProvider Filesystem
#IF ($DriveLetter -eq "N:\")
$StartPath = "N:"
Get-ChildItem $StartPath\*\*\ -Recurse |
ForEach {
$FullPath = Get-Item -LiteralPath (Get-Item -LiteralPath $_.PSPath)
(Get-Item -LiteralPath $FullPath).GetAccessControl() |
Select * -Expand Access |
Select @{N='Server Name';E={$strComputer}},
@{N='Full Path';E={$FullPath}},
@{N='Type';E={If($FullPath.PSIsContainer -eq $True) {'D'} Else {'F'}}},
@{N='Owner';E={$_.Owner}},
@{N='Trustee';E={$_.IdentityReference}},
@{N='Inherited';E={$_.IsInherited}},
@{N='Inheritance Flags';E={$_.InheritanceFlags}},
@{N='Ace Flags';E={$_.PropagationFlags}},
@{N='Ace Type';E={$_.AccessControlType}},
@{N='Access Masks';E={$_.FileSystemRights}} } |
Export-CSV -NoTypeInformation –Path "C:\stuff\NDriveShares.csv"
您可以让它忽略文件本身,只获取具有类似内容的文件夹...
Get-ChildItem -Recurse | ?{ $_.PSIsContainer }
那应该只获取 "IsContainer"
的文件夹或东西