【发布时间】:2015-01-07 13:02:11
【问题描述】:
我想编写一个脚本来列出/导出 Path 中目录的权限。
为了获取路径变量,我使用$env:Path,但这会将变量列为一个大字符串。如何让对象中的变量继续进行?接下来,我想获得权限get-acl。
感谢您的支持。
唐奎
【问题讨论】:
-
首先用
$env:path -split ';'把它放到一个数组中
标签: powershell permissions acl
我想编写一个脚本来列出/导出 Path 中目录的权限。
为了获取路径变量,我使用$env:Path,但这会将变量列为一个大字符串。如何让对象中的变量继续进行?接下来,我想获得权限get-acl。
感谢您的支持。
唐奎
【问题讨论】:
$env:path -split ';'把它放到一个数组中
标签: powershell permissions 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
}
}
【讨论】: