【问题标题】:Powershell 5.1.16299.1146 Get-ADGroupMember An operations error occurredPowershell 5.1.16299.1146 Get-ADGroupMember 发生操作错误
【发布时间】:2019-10-03 14:53:32
【问题描述】:

我来了

“发生操作错误”

当组包含来自不同域的用户时出错。

Powershell 5.1.14409.1018 中的同一行效果很好。

Get-ADGroupMember -Server "MyDomain" -Identity "MyGroup" | ForEach-Object {$_.SamAccountName}

当组包含来自不同域的用户时,是否有其他人在 5.1.16299.1146 版本上使用 Get-ADGroupMember 遇到问题?

Get-ADGroupMember:发生操作错误 在行:1 字符:1 + 获取 ADGroupMember -Server "MyDomain" "MyGroup ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (MyGroup:ADGroup) [Get-ADGroupMember], ADException + FullyQualifiedErrorId : ActiveDirectoryServer:8224,Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember

【问题讨论】:

  • 请更新您的问题,复制并粘贴确切的错误消息。 (请记住,我们看不到您的屏幕。)
  • 我无法重现该问题 - 您使用的是正确的域/组吗? - 注意我使用的是 PSVersion 5.1.14393.2636
  • 域/组是正确的,同一行适用于 5.1.14409.1018

标签: powershell


【解决方案1】:

Get-ADGroupMember 在处理外国安全负责人的推荐追逐方面是出了名的糟糕。不过,您应该可以使用 Get-ADGroupGet-ADObject do it manually

Function Get-ADGroupMemberFix {
    [CmdletBinding()]
    param(
        [Parameter(
            Mandatory = $true,
            ValueFromPipeline = $true,
            ValueFromPipelineByPropertyName = $true,
            Position = 0
        )]
        [string[]]
        $Identity,

        [string]
        $Server
    )

    begin {
        $additionalArguments = @{}
        if($PSBoundParameters.ContainsKey('Server')){
            $additionalArguments['Server'] = $Server
        }
    }

    process {
        foreach ($GroupIdentity in $Identity) {
            $Group = $null
            $Group = Get-ADGroup -Identity $GroupIdentity -Properties Member @additionalArguments
            if (-not $Group) {
                continue
            }
            Foreach ($Member in $Group.Member) {
                Get-ADObject $Member 
            }
        }
    }
}

Get-ADGroupMemberFix -Identity ''

(上面的脚本是/u/markekraus引用的reddit帖子中发布的脚本的修改版本)

如果需要,您可以将所需的属性名称添加到 Get-ADObject 调用中

【讨论】:

  • 这是一个很好的选择,它确实输出了更多信息,所以希望这对 OP 来说很好 - 编辑 - 我刚刚注意到,但是,这似乎没有得到 {$_.SamAccountName}
  • 在 5.1.16299.1146 之前,我从未遇到过 Get-ADGroupMember 问题。看起来,该解决方法仅返回 DistinguishedName、Name...我需要获取成员 SamAccountNames。
  • 因此通过管道将成员 DN 传递给 Get-ADUser 并选择 sAMAccountName。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-21
  • 1970-01-01
  • 1970-01-01
  • 2012-05-16
  • 2021-02-12
  • 1970-01-01
相关资源
最近更新 更多