Experimente o comando abaixo:
Get-DistributionGroup | Select-object Name,@{label="ManagedBy";expression={[string]($_.managedby | foreach {$_.tostring().split("/")[-1]})}} | Export-Csv
Estou tentando exportar uma lista de todos os DLs e preciso poder ter uma coluna com o samaccountname do valor ManagedBy (primeira entrada, se for múltipla).
Get-DistributionGroup | Select-Object Name, ManagedBy | Export-Csv C:\out.txt
Sem surpresa, isso me dá algo assim:
"Name","ManagedBy"
"DL-SOMETHING-SOMETHING","Microsoft.Exchange.Data.Directory.ADMultiValuedProperty'1[Microsoft.Exchange.Data.Directory.ADObjectId]"
Se não fosse um one-liner, eu poderia percorrer os valores de ManagedBy, usar GET-AdUser e extrair o que eu preciso.
Mas posso fazer isso de uma só vez, se eu me importar apenas com o primeiro ManagedBy?
Algo como ...
Get-DistributionGroup | Select-Object Name, ManagedBy[0].Samaccountname | Export-Csv C:\out.txt
Se eu conseguisse até mesmo a mesma string que recebo quando executar isso no console, poderia trabalhar com isso:
Get-DistributionGroup | Select-Object Name, ManagedBy
Saída
DL-SOMETHING-SOMETHING, {somedomain.com/Accounts/SomeAccount}
Tags powershell exchange