2015-02-05 3 views
1

Я перечисляю все «Свойства профиля пользователя» в консоли «Отображаемое имя, имя и тип». Есть ли простой способ экспортировать вывод таблицы в консоль в csv файл?Выход таблицы консоли -> файл csv - Export-csv

Это, вероятно, вопрос, который задавался много раз, но я не могу найти хороший способ сделать это.

Захват вывода в консоли. enter image description here

Script

############################################################################### 
# Export user profile properties to csv 
############################################################################### 

. .\Environment.ps1 


Write-Host "Retrieving User Profile Properties with $DomainUser at $FinalMySiteURL" -ForegroundColor Cyan 

[void][reflection.assembly]::Loadwithpartialname("Microsoft.Office.Server");    
$site=new-object Microsoft.SharePoint.SPSite("$FinalMySiteURL");    
$serviceContext = Get-SPServiceContext $site;    
$site.Dispose(); 

Write-Host "Getting user profile manager ..." -NoNewline 
Try 
{  
    $upm = new-object Microsoft.Office.Server.UserProfiles.UserProfileManager($serviceContext); 
    Write-Host "Done" -ForegroundColor Green 
} 
Catch [system.exception] 
{ 
    Write-Host "Error loading file, add $DomainUser as admin to the user profile service (admin/privillage)" -ForegroundColor Red 
    Break 
} 

$userProfile = $upm.GetUserProfile("$DomainUser"); 


$userProfileProperties = $userProfile.Properties | sort DisplayName | FT DisplayName,Name,@{Label="Type";Expression={$_.CoreProperty.Type}} 
$userProfileProperties 


Write-Host "Export to output to csv file ..." -NoNewline 
Try 
{  
    $userProfileProperties | Export-Csv $scriptPath\UserProfileProperties.csv 
    Write-Host "Done" -ForegroundColor Green 
} 
Catch [system.exception] 
{ 
    Write-Host "Error loading file, add $DomainUser as admin to the user profile service (admin/privillage)" -ForegroundColor Red 
    Break 
} 

ответ

1

Попробуйте изменить формат таблицы (FT) на заявление Выберите ...

так это:

$userProfileProperties = $userProfile.Properties | sort DisplayName | FT DisplayName,Name,@{Label="Type";Expression={$_.CoreProperty.Type}} 

становится:

$userProfileProperties = $userProfile.Properties | sort DisplayName | select DisplayName,Name,@{Label="Type";Expression={$_.CoreProperty.Type}} 
+1

Это ответ. Plexus81, ваша проблема заключается в попытке повторного использования вывода Format-Table. Команды Format- * в PowerShell предназначены только для отображения вывода на экране. Если вы попытаетесь передать их в другое место, например, вы здесь, отправляя '$ userProfileProperties | Export-CSV', вы получите искаженный результат. – FoxDeploy

Смежные вопросы