【问题标题】:PowerShell Shares ACL ListPowerShell 共享 ACL 列表
【发布时间】:2015-07-14 16:05:24
【问题描述】:

我有这个脚本可以进入一个共享驱动器的每个文件并列出 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"

【问题讨论】:

    标签: powershell csv network-shares


    【解决方案1】:

    您可以让它自己忽略文件,只获取具有类似内容的文件夹...

    Get-ChildItem -Recurse | ?{ $_.PSIsContainer }
    

    那应该只获取“IsContainer”的文件夹或东西

    【讨论】:

    • 听起来是个好主意,但在 ForEach 期望 ( after?
    • 我知道它需要什么。只是又需要一根管子|。它正在运行,但需要一些时间。我很快就会回来标记你的答案。谢谢!
    • 哦,是的,我没有为此添加抱歉。
    • NP!作品。谢谢卢克!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    相关资源
    最近更新 更多