0

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

$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 :由于内部错误,服务器无法处理请求。

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

Get-ADPrincipalGroupMembership 当任何用户组名称有“/”时失败

但我认为这与我的情况不同。或者我是瞎子……

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

谢谢你,迈克尔

4

1 回答 1

0

由于这样的原因,我不喜欢 AD PowerShell cmdlet。他们不能很好地处理所有案件。我知道没有处理外国安全负责人,尽管我不确定这将如何影响这个特定案例。正如你所说,正斜杠。

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

但是你可以避免使用Get-ADPrincipalGroupMembership. 你可以做同样的事情Get-ADGroup

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

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

于 2020-07-23T14:45:03.357 回答