我找到了以下脚本,它对我有很大帮助。此脚本使用给定根路径中的每个用户的权限创建一个 CSV 文件。如果此路径的子项目具有权限更改,则脚本也会创建一条记录。不幸的是,我不知道如何区分继承中断和用户或组的新权限。CSV 文件中的两条记录看起来相同。
function Get-PathPermissions {
param ( [Parameter(Mandatory=$true)] [System.String]${Path} )
begin {
$root = Get-Item $Path
($root | get-acl).Access | Add-Member -MemberType NoteProperty -Name "Path" -Value $($root.fullname).ToString() -PassThru
}
process {
$containers = Get-ChildItem -path $Path -recurse | ? {$_.psIscontainer -eq $true}
if ($containers -eq $null) {break}
foreach ($container in $containers)
{
(Get-ACL $container.fullname).Access | ? { $_.IsInherited -eq $false } | Add- ember -MemberType NoteProperty -Name "Path" -Value $($container.fullname).ToString() -PassThru
}
}
}
Get-PathPermissions $arg[0] | Export-Csv $outputFileName -Delimiter ";"
有人知道如何解决我的问题吗?