与我之前的问题一样,我的问题与此脚本有关:
$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 Fails when any user group name has "/"
但我不认为这与我的情况相同。也许我是盲人。...
所以:是否有办法解决该问题/错误,还是我必须使用另一个与Get-ADPrincipalGroupmembership相同的命令?
谢谢你,迈克尔
答案 0 :(得分: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
使用全局编录。