I am working on some scripts which show AD domain controllers by their site. My goal was to have the data combined so that each site has a single row, with the server name and IP address for each site being shown joined by semi-colons.
None of the examples for doing this worked for me. But this did:
#Create Example data $data =@" Site,IP,Server Site1,192.168.1.1,Server1a Site1,192.168.1.2,Server1b Site1,192.168.1.3,Server1c Site2,192.168.2.1,Server2a Site2,192.168.2.2,Server2b Site2,192.168.2.3,Server2c Site3,192.168.3.1,Server3a Site3,192.168.3.2,Server3b Site3,192.168.3.3,Server3c "@ #Convert it to CSV $CSVData = $data | ConvertFrom-Csv #Group and combine for export ($csvdata | Group-Object -Property site -AsHashTable).GetEnumerator() | foreach { [pscustomobject]@{ Site = $_.name Servers = $_.Value.server -join ";" IPs = $_.Value.ip -join ";" } } | sort site | Export-Csv "$env:USERPROFILE\desktop\consolidated.csv" -NoTypeInformation