0

我有一个列表,其中有一个允许多个值的“个人/组”列。我还在该列中添加了一些用户。现在我想使用 powershell 命令获取这些用户的电子邮件地址。当我尝试使用以下方法显示列名时:

Write-Host $item["To"]

结果是这样的:

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

它像字符串一样显示。如何在 Powershell 中获取人员字段电子邮件 ID?我在网上搜索过,但找不到任何可靠的解决方案。

4

2 回答 2

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
}

您可能需要修剪逗号后的空格

于 2013-08-09T18:32:50.363 回答
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 中使用。

于 2013-08-08T20:16:47.657 回答