【问题标题】:List permissions of environment path with powershell使用powershell列出环境路径的权限
【发布时间】:2015-01-07 13:02:11
【问题描述】:

我想编写一个脚本来列出/导出 Path 中目录的权限。

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

感谢您的支持。

唐奎

【问题讨论】:

  • 首先用$env:path -split ';'把它放到一个数组中

标签: powershell permissions acl


【解决方案1】:

使用-split operator 像这样拆分字符串,

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

$arr 变量内容可以通过管道传送到,例如,foreach,以便像这样进行进一步处理,

$arr | % {
  $_
}

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      • 2012-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      相关资源
      最近更新 更多