【发布时间】:2020-07-21 22:51:55
【问题描述】:
我想获得整个域中我的广告计算机(服务器)的“WSUS”组成员身份。 使用 PowerShell 脚本:
$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 Name )
'OS' = $server.OperatingSystem }
$csvinfos+= $customobject }
$csvinfos | export-csv c:\temp\wsus_server_groups.csv -Delimiter ";" -NoTypeInformation
脚本有效……我觉得还可以,但结果有些问题。
-
组名显示为
@{Name=Groupname},请问组名会显示为“Groupname”吗? -
如果服务器位于超过 1 个“WSUS”组中,我会得到
System.Object[]。如何获取服务器所属的所有组?
我认为我的问题并不难解决,但我没有那个 xp 和 PowerShell 可以自己解决。
最好的问候 迈克尔
编辑:原始问题已解决……但这是一个新问题!
该脚本用于 3 个不同的域(美国、欧盟、亚洲) 域构建相同。相同的 OU 结构、相同的设置、相同的一切。
根据更新后的脚本,我能够获得我想要的 3 个域中的 2 个域的结果。在第三个域上,get-adprincipalgroupmembership 命令出错:
Get-ADPrincipalGroupmembership : 由于内部错误,服务器无法处理请求。
我在谷歌上搜索了很多关于这个错误的信息。即使在stackoverflow上也是一个带有该错误的主题:
Get-ADPrincipalGroupMembership 在任何用户组名称带有“/”时失败
但我认为这与我的情况不同。或者我是瞎子……
所以:有没有办法解决这个问题/错误,还是我必须使用与 Get-ADPrincipalGroupmembership 相同的另一个命令?
谢谢你,迈克尔
【问题讨论】:
标签: powershell active-directory windows-server-2012-r2