我试图导出所有DL的列表,我需要能够有一个列的pipe理dBy值(第一个条目,如果多个)samaccountname。
Get-DistributionGroup | Select-Object Name, ManagedBy | Export-Csv C:\out.txt
毫不奇怪,这给了我这样的东西:
"Name","ManagedBy" "DL-SOMETHING-SOMETHING","Microsoft.Exchange.Data.Directory.ADMultiValuedProperty`1[Microsoft.Exchange.Data.Directory.ADObjectId]"
如果这不是一行代码,我可以通过ManagedBy值循环,使用GET-AdUser并提取我需要的东西。
但是,如果我只关心第一个ManagedBy,我可以做到这一点吗?
就像是…
Get-DistributionGroup | Select-Object Name, ManagedBy[0].Samaccountname | Export-Csv C:\out.txt
如果我甚至可以得到相同的string,当我在控制台中运行时,我可以使用它:
Get-DistributionGroup | Select-Object Name, ManagedBy
产量
DL-SOMETHING-SOMETHING, {somedomain.com/Accounts/SomeAccount}
尝试下面的命令:
Get-DistributionGroup | Select-object Name,@{label="ManagedBy";expression={[string]($_.managedby | foreach {$_.tostring().split("/")[-1]})}} | Export-Csv
它将显示如下: