使用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
}
}
我想编写一个脚本,其中 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
}
}