2013-08-08 2 views
0

У меня есть список, в котором есть столбец «Личность/группа», который допускает несколько значений. Я добавил некоторых пользователей в эту колонку. Теперь я хочу получить адрес электронной почты этих пользователей с помощью команды powershell. Когда я пытаюсь отобразить имя столбца с помощью:Получение адреса электронной почты Sharepoint 2010 PeoplePicker Column Value в PowerShell

Write-Host $item["To"] 

В результате, как:

70;#Anand, Amit 25;#Kumar, Prabhakar 

Он отображает как струна. Как получить идентификатор электронной почты пользователя в Powershell? Я искал в Интернете, но я не нашел твердого решения.

ответ

0
$input = "70;#Anand, Amit 25;#Kumar, Prabhakar 982;#Owen, Martin D." 
$regex = "(?<id>\d+);#(?<name>[.\D]*)" 

$input | Select-String $regex -AllMatches | % { 
    ForEach($match in $_.Matches) { 
     New-Object PSObject -Property @{ 
      Id = $match.groups["id"].value 
      Name = $match.groups["name"].value 
     } 
    } 
} 

должно дать вам:

Id  Name                    
--  ----                    
70  Anand, Amit                  
25  Kumar, Prabhakar 
982  Owen, Martin D. 

Я проверил это только в PowerShell 3.0, но я думаю, что он должен работать в 2.0.

+0

Привет Мартин, спасибо за ответ, но я хочу, чтобы адрес электронной почты .. результат должен быть как [email protected], [email protected] ... не могли бы вы мне посоветовать .. ?? – Naveen

+0

Его будет немного сложнее, вам нужно создать экземпляр SPUserfieldvalue, а затем получить SPUser, а затем вы можете получить электронное письмо. – Luis

0

Вы можете попробовать это:

$web = get-spweb http://sptwd 

"70;#Anand, Amit 25;#Kumar, Prabhakar".Split(",") | ForEach { 
    $userValue = New-Object Microsoft.Sharepoint.SPFieldUserValue ($web,$_) 
    $email = $userValue.User.Email 
} 

Вам может понадобиться обрезать пробелы после запятой

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