Feb 10 2022 07:29 AM
Hello,
I have this piece of code :
...
#Get GPOs with all settings disabled
$GpoList |
Where-Object {$_.gpostatus -eq "allsettingsdisabled"} |
ForEach-Object{
$CandidateGPOs[$_.id] =
@{
ID = $_.id
DisplayName = $_.displayname
CreationTime = $_.creationtime
Modificationtime = $_.modificationtime
Owner = $_.Owner
Domain = $domain
All_Settings_Disabled = $CandidateGPOs[$_.id].All_Settings_Disabled +"True"
Not_linked = $CandidateGPOs[$_.id].Not_linked +""
Links_disabled = $CandidateGPOs[$_.id].Links_disabled +""
No_settings = $CandidateGPOs[$_.id].No_settings +""
}
}
...
#other similar loops checking other settings (not linked, links disabled, no settings).
$candidateGPOs.GetEnumerator() | Sort-Object $_.keys | ForEach-Object{[PSCustomObject]$_.value } | Export-Csv "$ReportPath\_candidateGPOs_Listing.csv" -NoTypeInformation -Append -delimiter ";"
The result is not in the same order in the CSV.
The command give this order : $candidateGPOs.GetEnumerator() | Sort-Object $_.keys | ForEach-Object{[PSCustomObject]$_.value } =>
Modificationtime : 13.06.2019 11:24:02
ID : b17dfccad9c-a93c0-41a9-8d04-e119a549450f
CreationTime : 24.03.2007 14:27:45
No_settings : True
Domain : contoso.comt
Not_linked :
Owner : contoso\Domain Admins
All_Settings_Disabled :
Links_disabled :
DisplayName : Default Domain Controllers Policy
It was working before. I don't understand what I wrongly changed...
Thank you
O
Feb 10 2022 11:03 AM
SolutionFeb 17 2022 02:33 AM
@dotpwsh
Thank you, but my problem is not about sorting the data but about sorting the columns for the output.
They do not come in the same order as the variable definition.
Before they were ordered as expected and suddenly it changed.