I had an urgent request to pump out some data regarding a list of computer accounts similar to this:
CompA CompB CompC
I thought “No problem, a quick ‘Get-ADComputer’ piped to ‘Export-CSV’ and we’re golden. Except for the fact that Export-CSV doesn’t handle appends.
So, there’s a different way to do it – create your own custom objects.
Code appears below.
import-module ActiveDirectory $comps = Get-content "C:\system\CompData\comps.txt" $outfile = "c:\system\compdata\results.txt" $Computers = @() foreach ($comp in $comps) { $temp = Get-ADComputer $comp -Properties CanonicalName,Description,DNSHostName,LastLogonDate,DistinguishedName,Name,ObjectClass,ObjectGUID,SamAccountName,SID $compobject = New-Object System.Object $compobject | Add-Member -type NoteProperty -name CanonicalName -value $temp.CanonicalName $compobject | Add-Member -type NoteProperty -name Description -value $temp.Description $compobject | Add-Member -type NoteProperty -name DNSHostName -value $temp.DNSHostName $compobject | Add-Member -type NoteProperty -name LastLogonDate -value $temp.LastLogonDate $compobject | Add-Member -type NoteProperty -name DistinguishedName -value $temp.DistinguishedName $compobject | Add-Member -type NoteProperty -name Name -value $temp.Name $compobject | Add-Member -type NoteProperty -name ObjectClass -value $temp.ObjectClass $compobject | Add-Member -type NoteProperty -name ObjectGUID -value $temp.ObjectGUID $compobject | Add-Member -type NoteProperty -name SamAccountName -value $temp.SamAccountName $compobject | Add-Member -type NoteProperty -name SID -value $temp.SID $Computers += $compobject } $Computers | export-csv -Path $outfile