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

List permissions of environment path with powershell

我想编写一个脚本,其中 lists/exports 路径中目录的权限。

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

感谢您的支持。

冬奇

使用 -split operator 拆分字符串,

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

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

$arr | % {
  $_
}

谢谢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 

    }
}