Creating a document library is very simple. But always adding columns & setting the view of that library same as other becomes a time consuming task. So, to avoid these tasks I performed all the necessary tasks on library & saved that document library as template (CustomLibraryTemplate.stp) & then while creating a new document library I selected the same template(CustomLibraryTemplate) while creating new document library. This solution made it easier to create document libraries with the specified columns & the default view.
Now creating limited libraries is possible, but creating multiple document libraries using the same template again became the time consuming task as I had to create each document library manually. Then I searched for the powershell script which can create these libraries on One click.
The below given script gets the name of the Document Library & the name of the template using which the document library is to be created from the CreateDocumentLibraries.csv file & creates the libraries or lists as per the information stored in the csv file.
$url = "http://servername/sites/sitename"
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") > $null
$spSite = New-Object Microsoft.SharePoint.SPSite($url)
$spWeb = $SPSite.OpenWeb()
$listTemplates = $spSite.GetCustomListTemplates($spWeb)
$listTemplate1 = [Microsoft.SharePoint.SPListTemplateType]::DocumentLibrary
$listTemplate2 = [Microsoft.SharePoint.SPListTemplateType]::PictureLibrary
$filePath= "FilePaht\CreateDocumentLibraries.csv"
$data = Import-Csv $filePath
$spListCollection = $spWeb.Lists
foreach($line in $data)
{
$DocLibs=$line.DocLibs.trim()
#$DocDescription=$line.DocDescription.trim()
$listTemplate=$line.listTemplate.trim()
$spWeb.ListTemplates | ForEach{ write-host $_.Name }
if($listTemplate -eq "DocumentLibrary")
{
$spWeb.Lists.Add($DocLibs,"",$listTemplate1)
}
if($listTemplate -eq "PictureLibrary")
{
$spWeb.Lists.Add($DocLibs,"",$listTemplate2)
}
if($listTemplate -eq "CustomLibraryTemplate")
{
$spWeb.Lists.Add($DocLibs,"",$listTemplates["CustomLibraryTemplate"])
}
if($listTemplate -eq "CustomListTemplate")
{
$spWeb.Lists.Add($DocLibs,"",$listTemplates["CustomListTemplate"])
}
if($listTemplate -eq "CustomAnnouncementTemplate")
{
$spWeb.Lists.Add($DocLibs,"",$listTemplates["CustomAnnouncementTemplate"])
}
if($listTemplate -eq "CustomDiscussionBoardTemplate")
{
$spWeb.Lists.Add($DocLibs,"",$listTemplates["DiscussionBoardTemplate"])
}
$docLib = $spWeb.Lists[$DocLibs]
$docLib.Update()
Write-Host Created document library $line.DocLibs
}
The entries in the csv file are as follows:
DocLibs,listTemplate
DocumentLibrary,CustomLibraryTemplate
List,CustomListTemplate
Pictures,PictureLibraryTemplate
AnnouncementList,CustomAcnnouncementTemplate
DiscussionBoardList,CustomDiscussionBoardTemplate
When we have finished creating both the files, now open the Powershell Management tool & run a single command which contains only the path of the powershell script. e.g.- FilePaht\CreateDocumentLibraries.ps1.
The script will stop after all the lists & libraries are created within the site collection.
No comments:
Post a Comment