Dado o exemplo de arquivo CSV "domain1.xxx.org.csv", com o conteúdo como:
"name","samaccountname","description","distinguishedname","enabled","lastlogondate"
"ADAUser01","ADAUser01",,"CN=ADAUser01,OU=Users,OU=ADA,DC=phl,DC=xxx,DC=ORG","True","8/7/2012 2:28:37 PM"
Podemos ver como Import-Csv
converte o texto em um PSCustomObject usando os títulos:
Import-Csv domain1.xxx.org.csv | Select-Object -First 1 | Get-Member
TypeName: Selected.System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
description NoteProperty System.String description=
distinguishedname NoteProperty System.String distinguishedname=CN=ADAUser01,OU=Users,OU=ADA,DC=phl,DC=xxx,DC=ORG
enabled NoteProperty System.String enabled=True
lastlogondate NoteProperty System.String lastlogondate=8/7/2012 2:28:37 PM
name NoteProperty System.String name=ADAUser01
samaccountname NoteProperty System.String samaccountname=ADAUser01
Filtrar isso via Select-Object SAMAccountName
resulta no seguinte:
Import-Csv domain1.xxx.org.csv | Select-Object -First 1 SamAccountName
TypeName: Selected.System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
samaccountname NoteProperty System.String samaccountname=ADAUser01
Se você quiser comparar o NoteProperty em dois PSCustomObjects, porque não estamos apenas avaliando uma String, basta informar a Compare-Object
com qual propriedade deseja comparar:
Compare-Object $domain1 $domain2 -Property SamAccountName