【发布时间】:2020-09-18 18:44:25
【问题描述】:
我们有一个我们管理的受信任域,并且用户可以通过添加到控制权限的本地域组的受信任域上的组访问我们域上的文件服务器,例如
对于路径“\server\folder\folder”,权限可能如下所示
MyDomain\FolderXReadWrite
然后在该组内,来自受信任域的组将被包括
TrustedDomain\FolderXReadWrite
我想编写一个脚本来“逆向工程”这个,这样我就可以从给定的文件夹路径中获取可以访问的本地和受信任的域组并列出它们 - 我有以下内容:
$path = '\\server\path\path'
$Permissions = (Get-Item -Path $path -ErrorAction Stop | Get-Acl -ErrorAction Stop).Access | Where-Object { $_.IdentityReference -like "MyDomain\*" } | ForEach-Object {
$TrustedDomGroup = Get-ADGroupMember ($_.IdentityReference.Value -split '\\')[1] -Verbose | Where-Object { ($_.DistinguishedName -split 'DC=', 2)[-1] -like "*TrustedDomain*" -and ($_.objectClass -eq 'group') }
If ($TrustedDomGroup) {
[pscustomobject]@{Name=("TrustedDomain\" + $TrustedDomGroup.SamAccountName);Rights=("Member of " + $_.IdentityReference);Domain='PHS'}
}
[pscustomobject]@{Name=$_.IdentityReference;Rights=$_.FileSystemRights;Domain='NSS'}
}
$Permissions | Sort-Object Name -Unique
这会产生我需要的输出,但是,上面示例中的域组有很多用户,因此处理“Get-ADGroupMember”需要很长时间。有人对更快的方法有建议吗?
【问题讨论】:
标签: powershell active-directory