2014-08-28 2 views
3

Я запускаю следующий сценарий ps, чтобы получить некоторые данные из csv. Поля человека (AssignedTo и CreatedBy) поставляются с индексом: #LastName, FirstName. Как просто получить имя без индекса. Или мне нужно сделать Regex или Replace? Например,SharePoint> Powershell> Как отображать отображаемое имя поля пользователя?

32; #Doe, Джон Должен быть Doe Джон

$results = @() 
$web = Get-SPWeb "http://ourlocal.company.cc/docs/sales" 
$list = $web.Lists["Sales Tasks"] 
$caml = '<Where><Eq><FieldRef Name="Status" /><Value Type="Choice">Completed</Value></Eq></Where>' 
$query=new-object Microsoft.SharePoint.SPQuery 
$query.Query=$caml 
$ListItems=$list.GetItems($query) 
Write-Host "count " $ListItems.Count 
foreach ($item in $listItems) 
{ 
     $Title = $item["Title"] 
     $AssignedTo = $item["AssignedTo"] 
     $Status = $item["Status"] 
     $Priority = $item["Priority"] 
     $CreatedBy = $item["Created By"] 

     $out = new-object psobject -Property @{Title = $Title 
         AssignedTo = $AssignedTo 
         Status = $Status 
         Priority = $Priority 
         "Due Date" = $DueDate 
         "Percent Complete" = $Percent 
         "Created by" = $CreatedBy} 


     $out = $out|select-object Title, AssignedTo, Status, Priority, "Due Date", "Percent Complete", "Created by" 
     $results +=$out 
    } 
$results | Export-Csv "c:\output.csv" -noType 
$web.Dispose() 

ответ

5

Шаг 1:

Добавить следующий код сразу после $ CreatedBy = $ пункт [ "Создано"]

$CreatedByUserObj = New-Object Microsoft.SharePoint.SPFieldUserValue($web, $CreatedBy) 

$CreatedByDisplayName = $CreatedByUserObj.User.DisplayName; 

Шаг 2:

Заменить "Создано" = $ CreatedBy со следующим кодом

"Created by" = $CreatedByDisplayName 
+0

WOW. ЭТО БЫЛО ЗДОРОВО. РАБОТАЕТ В ПЕРВОМ ПЫТАХ. СПАСИБО МНЕ – torres

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