Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用powershell在驱动器中的所有目录中循环_Powershell_Powershell 2.0 - Fatal编程技术网

如何使用powershell在驱动器中的所有目录中循环

如何使用powershell在驱动器中的所有目录中循环,powershell,powershell-2.0,Powershell,Powershell 2.0,我有下面的powershell脚本,它为我提供了一个特定文件夹的权限 例如,在下面的脚本中,我可以获得名为SP的目录的每个文件夹(包括子文件夹)的权限 如何循环浏览所有文件夹而不是特定的targetDirectory $targetServer = '\\tst-server\f$\' #Enter hostname $targetDirectory = 'SP' #Enter directory name $target = Join-Path -ChildPat

我有下面的powershell脚本,它为我提供了一个特定文件夹的权限

例如,在下面的脚本中,我可以获得名为SP的目录的每个文件夹(包括子文件夹)的权限

如何循环浏览所有文件夹而不是特定的targetDirectory

$targetServer    = '\\tst-server\f$\'    #Enter hostname
$targetDirectory = 'SP' #Enter directory name
$target          = Join-Path -ChildPath $targetDirectory -Path $targetServer
$arrResults      = @() #Initialize array used to store custom object output
$exportPath      = 'C:\Users\adt\Desktop\Scripts\output\FolderPermission.csv' #Enter name of the CSV output file

#Query target directory for all 'folders' (excludes files via Where statement)
Get-ChildItem -Recurse -Path $target | Where { $_.PSIsContainer } |
forEach {
    $objPath = $_.FullName
    $coLACL  = Get-Acl -Path $objPath
    forEach ( $objACL in $colACL ) {
        forEach ( $accessRight in $objACL.Access ) {
            $objResults = New-Object –TypeName PSObject
            $objResults | Add-Member –MemberType NoteProperty –Name DirectoryPath      –Value $objPath
            $objResults | Add-Member –MemberType NoteProperty –Name Identity           –Value $accessRight.IdentityReference
            $objResults | Add-Member –MemberType NoteProperty –Name SystemRights       –Value $accessRight.FileSystemRights
            $objResults | Add-Member –MemberType NoteProperty –Name SystemRightsType   –Value $accessRight.AccessControlType
            $objResults | Add-Member -MemberType NoteProperty -Name IsInherited        -Value $accessRight.IsInherited
            $objResults | Add-Member -MemberType NoteProperty -Name InheritanceFlags   -Value $accessRight.InheritanceFlags
            $objResults | Add-Member –MemberType NoteProperty –Name RulesProtected     –Value $objACL.AreAccessRulesProtected
            $arrResults += $objResults
        }
    }
}

$arrResults | Export-CSV -NoTypeInformation -Path $exportPath

您只需将
路径设置为
F:

Get-ChildItem F: -Recurse | Where { $_.PSIsContainer } | Foreach-Object { 
   #do something 
}

谢谢Jisaak,让我试一试。只需用我发布的脚本替换
#查询目标目录下的两行…
注释