Get mail from AD and replace with ManagedBy

Hi team,
My goal is to create a CSV file with two data, the name of all the servers from Active Directory and the email of its owner.
In the first step I am asked about all the servers and who owns them:

$Servers = Get-ADComputer -Filter -SearchBase ‘OU=Servers,OU=CONTOSO Computers,DC=contoso,DC=lan’ -Properties ManagedBy | Select-Object -Property Name, @{label=‘ManagedBy’;expression={$_.ManagedBy -replace ‘^CN=|,.$’}}

And now I have the names of the servers and the names of their owners in such mode:
Name ManagedBy
Server1 Stevo Polyi
Server2 Rich Turner
Server3 Kirk Baltz

Now I need to ask AD about the email of each of the names in ManagedBy and replace the name with the email, and here’s the part I need help with. I tried all sorts of ways to query AD with the names in $Server.ManagedBy without success.

In this way it does work for me, But only if I ask about one server:

$11Server = Get-ADComputer -Filter {Name -eq ‘EXchangeServer’} -Properties ManagedBy | Select-Object -Property Name, @{label=‘ManagedBy’;expression={$_.ManagedBy -replace ‘^CN=|,.*$’}}
$22Owner = $11Server.ManagedBy
$33mail = Get-ADUser -Filter {Name -eq $22Owner} -Properties mail | Select-Object mail
$11Server.ManagedBy = $33mail.mail
$11Server

Name ManagedBy
EXchangeServer Stevo.Polyi@Contoso.com

 

I would appreciate your help Thanks

You call other commands inside of your calculated property expressions.

Get-ADComputer -Filter -SearchBase 'OU=Servers,OU=CONTOSO Computers,DC=contoso,DC=lan' -Properties ManagedBy |
    Select-Object -Property Name, @{label='ManagedBy';expression={(Get-ADUser $_.ManagedBy -Property Mail).Mail}}

Isn’t that the same question again … actually? Why?

https://powershell.org/forums/topic/get-mail-from-ad-and-replace-it-with-managedby/