我有一个列表,其中包含允许多个值的“人员/组”列。我也在该列中添加了一些用户。现在我想使用powershell命令获取这些用户的电子邮件地址。当我尝试使用:
显示列名时Write-Host $item["To"]
结果如下:
70;#Anand, Amit 25;#Kumar, Prabhakar
它显示为字符串。如何在Powershell中获取人员字段电子邮件ID?我在网上搜索过,但找不到任何可靠的解决方案。
答案 0 :(得分: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中运行。
答案 1 :(得分: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
}
您可能需要在逗号后修剪空格