【问题标题】:Unable to retrieve cross domain users with get-adgroupmember -recursive无法使用 get-adgroupmember -recursive 检索跨域用户
【发布时间】:2022-05-06 07:37:21
【问题描述】:

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

然后我的脚本会导出我需要的所有 AD 组,但不会填充属于不同域的用户

广告是这样的:

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

【问题讨论】:

  • 建议:$members=(Get-ADGroupMember -Recursive $group).Name -join ';'

标签: powershell active-directory


【解决方案1】:

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

您也可以尝试查询全局目录。如果您的域控制器也激活了全局目录,您可以使用“服务器”参数查询他。全局 gatalog 通常监听 3268 端口

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

【讨论】:

  • 我正要说它不起作用,但 3268 被我的终端阻止了。它创造奇迹!非常感谢!!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-05
相关资源
最近更新 更多