Never select all properties unless you absolutely really need to. Only select what you want.
For example:
By default you already get this
# Testing by just select the first user from AD.
(Get-ADUser -Filter '*' )[0]
# Results
DistinguishedName : CN=Administrator...
Enabled : True
GivenName :
Name : Administrator
ObjectClass : user
ObjectGUID : 4113...
SamAccountName : Administrator
SID : S-1-5-2...
Surname :
UserPrincipalName : Administrator@...
So you only need to add these, from what you show you wanted
(Get-ADUser -Filter '*' -Properties department, emailaddress, office, manager)[0]
# Results
Department :
DistinguishedName : CN=Administrator,...
EmailAddress : Administrator...
Enabled : True
GivenName :
Manager : CN=Administrator,...
Name : Administrator
ObjectClass : user
ObjectGUID : 41133...
Office :
SamAccountName : Administrator
SID : S-1-5-2...
Surname :
UserPrincipalName : Administrator@...
So, to get this…
John, Doe, IT, email@domain.com, Office, SomeManagerName
… just do this…
(Get-ADUser -Filter '*' -Properties department, emailaddress, office, manager)[0] |
Select-Object -Property givenname, surname, department, emailaddress, office,
@{Name = 'Manager';Expression = {$($PSItem.manager -replace '^CN=|,.*$' )}}
# Results
givenname :
surname :
department :
emailaddress : Administrator@...
office :
Manager : Administrator
# Or as screen table
(Get-ADUser -Filter '*' -Properties department, emailaddress, office, manager)[0] |
Select-Object -Property givenname, surname, department, emailaddress, office,
@{Name = 'Manager';Expression = {$($_.manager -replace '^CN=|,.*$' )}} |
Format-Table -AutoSize
# Or Export to csv
(Get-ADUser -Filter '*' -Properties department, emailaddress, office, manager)[0] |
Select-Object -Property givenname, surname, department, emailaddress, office,
@{Name = 'Manager';Expression = {$($_.manager -replace '^CN=|,.*$' )}} |
Export-Csv -Path 'C:\temp\Test.csv' -NoTypeInformation
Import-Csv -Path 'C:\temp\Test.csv'
# Results
givenname :
surname :
department :
emailaddress : Administrator@...
office :
Manager : Administrator
Import-Csv -Path 'C:\temp\Test.csv' |
Format-Table -AutoSize
# Results
givenname surname department emailaddress office Manager
--------- ------- ---------- ------------ ------ -------
Administrator@... Administrator
# Or as a variable that you can read back from for later use case, without the need for a separate file
$ADUserRecord = (Get-ADUser -Filter '*' -Properties department, emailaddress, office, manager)[0] |
Select-Object -Property givenname, surname, department, emailaddress, office,
@{Name = 'Manager';Expression = {$($_.manager -replace '^CN=|,.*$' )}}
$ADUserRecord.emailaddress
# Or this way, from the default variable $PSDrive.
Get-Content -Path 'Variable:\ADUserRecord'