Powershell 对于每个AD组,在表中获取成员和操作系统

Powershell 对于每个AD组,在表中获取成员和操作系统,powershell,Powershell,在这里,我试图获得一个广告组的列表,以及每个组中的服务器,操作系统在一个表上 获取ADGroup-Filter'name-like SUS*'| ForEach对象{ $hash=@{GroupName=$\.Name;Member=} $124;获取ADGroupMember-ea 0-递归| ForEach对象{ $hash.Member=$\ux.Name 新对象psObject-属性$hash } }|对组名、成员进行排序 我怎样才能使表格符合以下格式 GroupName | Serve

在这里,我试图获得一个广告组的列表,以及每个组中的服务器,操作系统在一个表上

获取ADGroup-Filter'name-like SUS*'| ForEach对象{ $hash=@{GroupName=$\.Name;Member=} $124;获取ADGroupMember-ea 0-递归| ForEach对象{ $hash.Member=$\ux.Name 新对象psObject-属性$hash } }|对组名、成员进行排序 我怎样才能使表格符合以下格式


GroupName | ServerName | OperatingSystem

使用[PSCustomObject]加速器比使用新对象和散列要容易得多

此外,如果您需要操作系统,则需要使用Get ADComputer。Get-ADGroupMember仅返回ADPrincipal对象,该对象不能包含OperatingSystem属性。幸运的是,您可以传递该对象以获取ADComputer,这将返回一个ADComputer对象,如果您需要,它可以包含OperatingSystem

获取ADGroup-Filter'name-like SUS*'| ForEach对象{ $groupName=$\u.Name $124; Get-ADGroupMember-ea 0-Recurse | Get-ADComputer-Properties OperatingSystem-ea 0 | ForEach对象{ 返回[PSCustomObject]@{ GroupName=$GroupName 服务器名=$\服务器名 OperatingSystem=$\ OperatingSystem } } }|排序对象组名、服务器名 Get-ADGroupMember还可以返回用户或组。在使用-ea 0时,您需要在管道之前仅筛选计算机对象以获取ADComputerNot,这相当于-ErrorAction SilentlyContinue。我想用它作为过滤器会给DC带来更多的流量,但是除非你做了一些疯狂的事情,否则这可能不是一个真正的问题。