我的任务是提供多个AD组中的AD组成员列表,并将其导出到.csv。如果有问题的AD组甚至有一个跨域用户,我的脚本就会失败。
Get-ADGroupMember : An operations error occurred
At C:\users\user1\desktop\ps2.ps1:5 char:1
Get-ADGroupMember -recursive $group | ForEach-Object {
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (Amazing-ADGroup:ADGroup) [Get-ADGroupMember], AD
Exception
+ FullyQualifiedErrorId : ActiveDirectoryServer:8224,Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember
然后,我的脚本会导出我需要的所有广告组,但不会填充属于不同域的用户
广告就像:
Parent-Domain
Sub-Domain1 -> has all the AD Groups I am querying
Sub-Domain2
Sub-Domain3
Sub-Domain4
我已经尝试了一切可以在线解决的问题,但其他问题与我相同,但无法解决我的情况。
$Groups = Get-ADGroup -Filter * -SearchBase 'OU=,OU=,OU=,DC=,DC=,DC='
$Groups | ForEach-Object {
$group = $_.Name
$members = $null
Get-ADGroupMember -recursive $group | ForEach-Object {
If($members) {
$members=$members + ";" + $_.Name
} Else {
$members=$_.Name
}
}
New-Object -TypeName PSObject -Property @{
GroupName = $group
Members = $members
}
} | Export-CSV "C:\temp\AD-Group-Members.csv" -NoTypeInformation -Encoding UTF8
答案 0 :(得分:2)
我认为这不是您的Powershell脚本中的问题,而是小组范围的问题。 组范围必须是“通用”范围,才能从其他域中获取成员。
您也可以尝试查询全局编录。如果您的domaincontroller也激活了全局编录,则可以使用“服务器”参数查询他。全局目录通常在端口3268上侦听
Get-ADGroupMember -Identity $group -Recursive -Server domaincontroller.domain.com:3268