Намного проще использовать ускоритель [PSCustomObject]
, чем использовать New-Object
и ha sh, как вы это делаете.
Кроме того, если вам нужна операционная система, вам нужно использовать Get-ADComputer
. Get-ADGroupMember
возвращает только объект ADPrincipal
, который не может содержать свойство OperatingSystem. К счастью, вы можете передать этот объект в Get-ADComputer
, и он вернет объект ADComputer
, который может содержать операционную систему, если вы попросите об этом.
Get-ADGroup -Filter 'name -like "SUS*"' | ForEach-Object {
$groupName = $_.Name
$_ | Get-ADGroupMember -ea 0 -recurs | Get-ADComputer -Properties OperatingSystem -ea 0 | ForEach-Object {
return [PSCustomObject]@{
GroupName = $groupName
ServerName = $_.Name
OperatingSystem = $_.OperatingSystem
}
}
} | Sort-Object GroupName, ServerName