我想编写一个脚本,列出/导出路径中目录的权限。
要获取路径变量,我使用$env:Path
,但这会将变量列为一个大字符串。如何让对象中的变量继续进行?接下来,我想获得权限get-acl
。
感谢您的支持。
DonQui
答案 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
}
}