Een interessantere vraag: waarom krijg ik "Microsoft.ActiveDirectory.Management.ADPropertyValueCollection" te zien? Je zou denken: "omdat het een array is". Wel, euh, volg even mee:
-> Alle data in $Users klopt
Voor elk domein gaat er een $Users in $ForestUsers
-> Alle data in $ForestUsers klopt
Wanneer ik de output transformeer door Select-Object...
... dan krijg ik Microsoft.ActiveDirectory.Management.ADPropertyValueCollection voor alle waarden nà Country. Nochtans waren die geen arrayobjecten (volgend de documentatie zelfs gewoon String). Ook valt er niets te indexeren.
Zwaar gecensureerd screenshotje:

Ja, ik bouw een app rond de CSV
Het bizarre is dat ik het in mijn console niet kan reproduceren - enkel in het script... en de enige relevante code heb ik hier gepost.
Als ik dat exporteer ziet mijn CSV er ook in orde uit. Hier de headers:
Quid?
C#:
1
| $Users = @(Get-ADUser -Filter 'Enabled -EQ $True' -Server $SelectedDomain -Credential $Credentials -Properties CanonicalName, SID, SamAccountName, GivenName, Surname, DisplayName, Mail, Title, StreetAddress, PostalCode, City, Country, Company, HomePage, OfficePhone, MobilePhone, Fax) |
-> Alle data in $Users klopt
Voor elk domein gaat er een $Users in $ForestUsers
C#:
1
| $ForestUsers = $ForestUsers + $Users |
-> Alle data in $ForestUsers klopt
Wanneer ik de output transformeer door Select-Object...
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| $FinalData = $ForestUsers | Select-Object @{Name="Domain";Expression={$_.CanonicalName.Split("/")[0]}},` @{Name="SID";Expression={$_.SID}},` @{Name="User";Expression={$_.sAMAccountname}},` @{Name="First Name";Expression={$_.GivenName}},` @{Name="Last Name";Expression={$_.Surname}},` @{Name="Display Name";Expression={$_.DisplayName}},` @{Name="E-Mail";Expression={$_.Mail}},` @{Name="Job Title";Expression={$_.Title}},` @{Name="Address";Expression={$_.StreetAddress}},` @{Name="Postal Code";Expression={$_.PostalCode}},` @{Name="City";Expression={$_.City}},` @{Name="Country";Expression={$_.Country}},` @{Name="Company";Expression={$_.Company}},` @{Name="Website";Expression={$_.HomePage}},` @{Name="Phone";Expression={$_.OfficePhone}},` @{Name="Mobile";Expression={$_.MobilePhone}},` @{Name="Fax";Expression={$_.Fax}} $FinalData | Export-CSV $TempDataFromAD -Delimiter ";" -Encoding UTF8 -NoTypeInformation |
... dan krijg ik Microsoft.ActiveDirectory.Management.ADPropertyValueCollection voor alle waarden nà Country. Nochtans waren die geen arrayobjecten (volgend de documentatie zelfs gewoon String). Ook valt er niets te indexeren.
Zwaar gecensureerd screenshotje:

Ja, ik bouw een app rond de CSV
Het bizarre is dat ik het in mijn console niet kan reproduceren - enkel in het script... en de enige relevante code heb ik hier gepost.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| PS C:\Users\Administrator\Desktop> $FinalData[1] Domain : tweakers.net SID : S-X-X-XX-XXXXXXXX-XXXXXXXXX-XXXXXXXXXX-XXX User : Administrator First Name : Administrator Last Name : Display Name : Administrator E-Mail : administrator@tweakers.net Job Title : Blablabla Address : Blablabla Postal Code : 10000 City : Berlin Country : Germany Company : Blablabla Website : about:blank Phone : 000000 Mobile : 000000 Fax : 000000 |
Als ik dat exporteer ziet mijn CSV er ook in orde uit. Hier de headers:
code:
1
| Domain,"SID","User","First Name","Last Name","Display Name","E-Mail","Job Title","Address","Postal Code","City","Country","Company","Website","Phone","Mobile","Fax" |
Quid?
[ Voor 24% gewijzigd door YellowOnline op 22-05-2015 14:01 ]








