我能够在我的环境中完成这项工作,因此它应该可以在您的环境中进行一些必要的更改。如果您有任何问题,请告诉我,我会为您提供帮助。
要获取给定组 A 和 B 中的 AD 用户:
$ADGroups = Get-ADGroup -filter * -SearchBase "OU=A,DC=zone,DC=domain,DC=com"
$报告 = @()
Foreach ($Group in ($ADGroups | ? { $_.DistinguishedName -like "OU=B" }))
{
尝试{
$members = Get-ADGroupMember -identity $group.Name
$object = [pscustomobject]@{
组名 = $group.Name;
GroupMembers = "$($members.name -join ";")";
}
$报告 += $对象
}
抓住
{
写主机“无法找到 AD 组成员”
}
}
$report | Export-CSV -NoTypeInformation -Path "C:\Temp\Test.csv"
从 A 和 B 中的 ADGroups 获取 B 中的 ADComputers:
$ADGroups = Get-ADGroup -filter * -SearchBase "OU=A,DC=zone,DC=domain,DC=com"
$report = @()
Foreach ($Group in ($ADGroups | ? { $_.DistinguishedName -like "*OU=B*" }))
{
try{
<#
$members = Get-ADGroupMember -identity $group.Name
#>
$members = -Filter * -Property MemberOf -SearchBase "OU=B,DC=zone,DC=domain,DC=com" | Where-Object { $_.memberOf -like "*$($group.name)*" }
$object = [pscustomobject]@{
GroupName = $group.Name;
GroupMembers = "$($members.name -join ";")";
}
$report += $object
}
catch
{
Write-Host "Unable to find AD Group Members"
}
}
$report | Export-CSV -NoTypeInformation -Path "C:\Temp\Test.csv"
第二个条件有效,但我在自己的网络中没有针对我正在执行的有限搜索的结果。试一试,我们可以根据需要进行调整。