从阵列 PowerShell 脚本将随机用户名插入 SharePoint 2013 列

Insert random username to SharePoint 2013 column from array PowerShell script

我编写了脚本来为 PowerShell 中的自定义 SharePoint 列表创建 N 个项目。我让它使用固定值,但现在我想创建具有随机值的项目。
我创建了作为值数组的内部变量,我希望在列表列中设置这些变量。
我让它适用于一些简单的列,如日期、单行和多行文本等。但我似乎无法让它适用于查找和人员选择器值。波纹管是我制作的脚本示例。 对于这个例子,我在 PowerShell 中没有得到错误,我只是在列中得到了不正确的结果,例如我在不在值 userName 数组中的人员选择器列中得到了用户名。我得到 ID;#User8(例如)不在数组中。

如果您有任何建议我应该更改或添加什么以仅从数组中获取值?

Add-PSSnapin Microsoft.SharePoint.PowerShell -EA SilentlyContinue

$webUrl = "site url"
$listName = "list name"
$numberItemsToCreate = N
# userName is array of values of usernames that would be set to people picker column
$userName = ID;#user1, ID;#User2, ID;#User3, ID;#User6, ID;#User10
# projectName is array of values of projects that are lookup column from another list
$projectName = 1;#Project1, 2;#Project2, 3;#Project3, 4;#Project4
# 

$web = Get-SPWeb $webUrl
$list = $web.Lists[$listName]

for($i=1; $i -le $numberItemsToCreate; $i++)
{
$newItem = $list.AddItem()
$newItem["Title"] = "Title"
$newItem["Project"] = (Get-Random $projectName)
$newItem["DueDate"] = "2017-12-12 00:00:00"
$newItem["Assigned_x0020_To"] = (Get-Random $userName)
$newItem["EstimatedFinishDate"] = "2017-12-12 00:00:00"
#$newItem["Status"] = "ToDo"
$newItem["URLs"] = "www.google.com"

$newItem.Update()
}

$web.Dispose()

这个“$userName = ID;#user1, ID;#User2, ID;#User3, ID;#User6, ID;#User10”不是 PowerShell array or hashtable

使用数组:

$userName = @("#user1", "#User2", "#User3", "#User6", "#User10")
$newItem["Assigned_x0020_To"] = Get-Random $userName

使用哈希表:

$projectName = @{1="#Project1"; 2="#Project2"; 3="#Project3"; 4="#Project4"}
$newItem["Project"] = $ProjectName.(Get-Random @($ProjectName.Keys))

或者只是:

$newItem["Project"] = Get-Random @($ProjectName.Values)