Get-ADPrincipalGroupmembership:由于内部错误,服务器无法处理请求

Get-ADPrincipalGroupmembership : The server was unable to process the request due to an internal error

和我之前的问题一样,我的问题是关于这个脚本的:

$csvInfos=@()
$allservers=@(Get-ADComputer -SearchBase "OU=BRLN-Servers,OU=OU-BRLN,OU=DE,OU=Locations,DC=bla,DC=bla,DC=bla" -Filter * -Properties *)
foreach($server in $allservers){
                $customobject = new-object -TypeName PSObject -Property @{

                'Servername' = $server.Name
                'WSUS Gruppen' = ($server | get-ADPrincipalGroupMembership |?{$_.Name -like '*wsus*'} | Select-Object -ExpandProperty Name ) -join ";"
                'OS' = $server.OperatingSystem }

            $csvinfos+= $customobject }

$csvinfos | export-csv c:\temp\wsus_server_groups.csv -Delimiter ";" -NoTypeInformation

该脚本用于 3 个不同的域(美国、欧盟、亚洲),域构建相同。相同的 OU 结构,相同的设置,相同的一切。

基于更新的脚本,我能够为 3 个域中的 2 个域获得我想要的结果。在第三个域中,get-adprincipalgroupmembership 命令出错:

Get-ADPrincipalGroupmembership: 由于内部错误,服务器无法处理请求。

我在谷歌上搜索了很多关于这个错误的信息。即使在 Whosebug 上也有一个带有该错误的主题:

Get-ADPrincipalGroupMembership Fails when any user group name has "/"

但我认为这描述的情况与我的情况不同。又或者我瞎了....

所以:有没有办法解决这个问题/错误,或者我是否必须使用另一个与 Get-ADPrincipalGroupmembership 功能相同的命令?

谢谢你,迈克尔

出于这样的原因,我不喜欢 AD PowerShell cmdlet。他们不能很好地处理所有情况。我知道没有处理外国安全主体,但我不确定这将如何影响这个特定案例。正如你所说,正斜杠。

如果您看到崩溃发生在哪个服务器对象上,您也许能够找出它发生的原因。

但是你可以避免使用 Get-ADPrincipalGroupMembership。你可以用 Get-ADGroup:

做同样的事情
'WSUS Gruppen' = (Get-ADGroup -LDAPFilter "(&(name=*wsus*)(member=$($server.DistinguishedName)))" | Select-Object -ExpandProperty Name ) -join ";"

如果您的 AD 林中有多个域,那么您应该通过指定 -Server example.com:3268.

告诉 Get-ADGroup 使用全局目录