0

我编写了脚本来为 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()
4

1 回答 1

2

此“ $userName = ID;#user1, ID;#User2, ID;#User3, ID;#User6, ID;#User10”不是 PowerShell数组哈希表

使用数组:

$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)
于 2017-12-13T10:24:38.880 回答