无法使用get-adgroupmember -recursive检索跨域用户

时间:2019-03-29 12:38:26

标签: powershell active-directory

我的任务是提供多个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

1 个答案:

答案 0 :(得分:2)

我认为这不是您的Powershell脚本中的问题,而是小组范围的问题。 组范围必须是“通用”范围,才能从其他域中获取成员。

您也可以尝试查询全局编录。如果您的domaincontroller也激活了全局编录,则可以使用“服务器”参数查询他。全局目录通常在端口3268上侦听

Get-ADGroupMember -Identity $group -Recursive -Server domaincontroller.domain.com:3268