使用PowerShell列出环境路径的权限

时间:2015-01-07 13:02:12

标签: powershell permissions acl

我想编写一个脚本,列出/导出路径中目录的权限。

要获取路径变量,我使用$env:Path,但这会将变量列为一个大字符串。如何让对象中的变量继续进行?接下来,我想获得权限get-acl

感谢您的支持。

DonQui

2 个答案:

答案 0 :(得分:0)

使用-split operator分割字符串,如此

$arr = $env:path -split ";"
$arr
%SystemRoot%\system32\WindowsPowerShell\v1.0\
C:\windows\system32
C:\windows
...

$arr变量内容可以通过管道传输到foreach进行进一步处理,

$arr | % {
  $_
}

答案 1 :(得分:0)

谢谢arco444

我使用以下脚本获取具有权限的列表:

$folders = $env:Path
$folders = $folders.split(";")

foreach ($path in $paths){
    $acl = Get-Acl $path
    $acl.Access
    foreach ($ace in $acl.Access) {
            $obj = New-Object psobject
            $obj | add-member noteproperty -name FolderPath -Value $path
            $obj | add-member noteproperty -name Identity -Value $ace.IdentityReference
            $obj | Add-Member noteproperty -name AccessType -Value $ace.AccessControlType
            $obj | Add-Member noteproperty -name Permission -Value $ace.FileSystemRights
            Write-Output $obj | Export-Csv -Path Z:\PowerShellTest\Permissions.csv -NoTypeInformation -Append 

    }
}
相关问题