PARAM ($url, $toCount, $toListItemsCount, $lookUpItemsCount)
$snapin = Get-PSSnapin | Where-Object {$_.Name -eq 'Microsoft.SharePoint.Powershell'}
if ($snapin -eq $null){
Add-PSSnapin Microsoft.SharePoint.Powershell
[Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
}
$spWeb = Get-SPWeb -Identity $url
$toListsIds = @()
for($iList=0; $iList -lt $toCount; $iList++)
{
$toListName = "ToList" + $iList
Write-Host "Creating to list " $toListName
$lstId = $spWeb.Lists.Add($toListName, "test to list",100);
$spLst = $spWeb.Lists.GetList($lstId, $true);
$toListsIds+=$lstId
for ($iItem=0; $iItem -lt $toListItemsCount; $iItem++)
{
$spItem = $spLst.Items.Add()
$spItem["Title"] = [string]::Format("List {0} item {1}", $toListName, $iItem)
$spItem.Update()
Write-Host "\tadd item " $iItem
}
}
Write-Host "Creating look up list"
$lookUplstId = $spWeb.Lists.Add("LookUpList", "test to list",100);
$splookUpLst = $spWeb.Lists.GetList($lookUplstId, $true);
for ($iField=0; $iField -lt $toCount; $iField++)
{
$fldIntName = $splookUpLst.Fields.AddLookup("LookUpField"+$iField, $toListsIds[$iField], $false)
$spFld = $splookUpLst.Fields[$fldIntName]
$spLookUpFld = $spFld -as [Microsoft.SharePoint.SPFieldLookup]
$spLookUpFld.ShowInDisplayForm = $true
$spLookUpFld.LookupField = "Title"
$spLookUpFld.Update()
Write-Host "\tadd field " $iField
}
Write-Host "Creating look up items " $lookUpItemsCount
$rand = New-Object system.random
for ($iItem=0; $iItem -lt $lookUpItemsCount; $iItem++)
{
$spItem = $splookUpLst.Items.Add()
$spItem["Title"] = "Item " + $iItem
for ($iField=0; $iField -lt $toCount; $iField++)
{
$fldName = "LookUpField"+$iField
if ($iField -eq 0)
{
$spItem[$fldName] = $null
}
else
{
$rId = $rand.Next(0, $toListItemsCount)
if ($rId -eq 0)
{
$spItem[$fldName] = $null;
}
else
{
$spItem[$fldName] = $rId;
}
}
}
$spItem.Update()
Write-Host "Create item " $iItem
}
Write-Host "DONE!"
$snapin = Get-PSSnapin | Where-Object {$_.Name -eq 'Microsoft.SharePoint.Powershell'}
if ($snapin -eq $null){
Add-PSSnapin Microsoft.SharePoint.Powershell
[Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
}
$spWeb = Get-SPWeb -Identity $url
$toListsIds = @()
for($iList=0; $iList -lt $toCount; $iList++)
{
$toListName = "ToList" + $iList
Write-Host "Creating to list " $toListName
$lstId = $spWeb.Lists.Add($toListName, "test to list",100);
$spLst = $spWeb.Lists.GetList($lstId, $true);
$toListsIds+=$lstId
for ($iItem=0; $iItem -lt $toListItemsCount; $iItem++)
{
$spItem = $spLst.Items.Add()
$spItem["Title"] = [string]::Format("List {0} item {1}", $toListName, $iItem)
$spItem.Update()
Write-Host "\tadd item " $iItem
}
}
Write-Host "Creating look up list"
$lookUplstId = $spWeb.Lists.Add("LookUpList", "test to list",100);
$splookUpLst = $spWeb.Lists.GetList($lookUplstId, $true);
for ($iField=0; $iField -lt $toCount; $iField++)
{
$fldIntName = $splookUpLst.Fields.AddLookup("LookUpField"+$iField, $toListsIds[$iField], $false)
$spFld = $splookUpLst.Fields[$fldIntName]
$spLookUpFld = $spFld -as [Microsoft.SharePoint.SPFieldLookup]
$spLookUpFld.ShowInDisplayForm = $true
$spLookUpFld.LookupField = "Title"
$spLookUpFld.Update()
Write-Host "\tadd field " $iField
}
Write-Host "Creating look up items " $lookUpItemsCount
$rand = New-Object system.random
for ($iItem=0; $iItem -lt $lookUpItemsCount; $iItem++)
{
$spItem = $splookUpLst.Items.Add()
$spItem["Title"] = "Item " + $iItem
for ($iField=0; $iField -lt $toCount; $iField++)
{
$fldName = "LookUpField"+$iField
if ($iField -eq 0)
{
$spItem[$fldName] = $null
}
else
{
$rId = $rand.Next(0, $toListItemsCount)
if ($rId -eq 0)
{
$spItem[$fldName] = $null;
}
else
{
$spItem[$fldName] = $rId;
}
}
}
$spItem.Update()
Write-Host "Create item " $iItem
}
Write-Host "DONE!"
В написании скрипта мне очень помог бесплатный редактор PowerGUI
Комментариев нет:
Отправка комментария